Вопрос или проблема
Я выполнил
sudo userdel <имя_пользователя>
но получил следующую ошибку
userdel: невозможно удалить запись '<имя_пользователя>' из /etc/passwd
Я проверил файл /etc/passwd и действительно не смог найти запись с этим именем пользователя – я проверял через CTRL+F.
Любая помощь была бы очень полезной, я уже использовал строку поиска, но не нашел удовлетворительных ответов.
Спасибо!
ИЗМЕНЕНИЕ:
Я думаю, что знаю, в чем может быть проблема. Пользователь, которого я пытаюсь удалить, не аутентифицируется локально, а в сети, так как логин совпадает с данными для входа в университет, поэтому он не сохраняет данные локально в /etc/passwd – теперь вопрос в том, как мне удалить такого пользователя, который аутентифицируется через сеть – Может кто-то мне с этим помочь?
ИЗМЕНЕНИЕ2: По запросу ниже приведено содержимое /etc/nsswitch.conf
passwd: files
group: files
shadow: files
gshadow: files
hosts: files mdns4_minimal [NOTFOUND=return] dns
networks: files
protocols: db files
services: db files sss
ethers: db files
rpc: db files
netgroup: nis
sudoers: sss
У меня только что возникла эта проблема.
Я остановил следующие службы
systemctl stop ntpd smb winbind
создал пользователя:
useradd linuxuser
затем запустил службы
systemctl start ntpd smb winbind
Ответ или решение
Для решения проблемы с удалением сетевого пользователя, который не имеет записи в файле /etc/passwd
, вам необходимо предпринять несколько шагов, так как аутентификация пользователей происходит через сетевую службу, например, Active Directory или NIS.
Шаги для решения проблемы:
-
Определите способ аутентификации. Убедитесь, что у вас есть информация о том, каким образом пользователи аутентифицируются в вашей сети. Возможно, они используют Kerberos, LDAP или другую сетевую службу.
-
Используйте соответствующие инструменты для управления пользователями. В зависимости от системы аутентификации вам нужно использовать правильные утилиты для удаления пользователя:
- Для Kerberos вы можете использовать
kadmin
для удаления пользователя. - Для LDAP используйте утилиты вроде
ldapdelete
для удаления сетевого пользователя.
- Для Kerberos вы можете использовать
-
Система Winbind. Если вы используете Winbind (например, для интеграции с Active Directory), вам может потребоваться остановить соответствующие службы, чтобы создать или удалить пользователя, как вы уже упомянули.
-
Остановка служб: Перед выполнением удаления пользователя, остановите службы, которые могут блокировать изменения:
sudo systemctl stop smb winbind
-
Удаление пользователя: После остановки служб попробуйте снова удалить пользователя, используя команды управления пользователями, соответствующие вашей настройке:
sudo net ads user delete <username> # Если используется Samba/Winbind
-
Завершение работы: После выполнения всех изменений перезапустите остановленные службы:
sudo systemctl start smb winbind
Дополнительные рекомендации:
- Убедитесь, что у вас есть соответствующие административные права для выполнения этих операций.
- Проверьте конфигурацию вашего
nsswitch.conf
, если необходимо, чтобы убедиться, что ваши настройки аутентификации соответствуют вашим требованиям. - Используйте
getent passwd <username>
для проверки фактического существования записи пользователя в системе.
Следуя данным шагам, вы сможете успешно удалить сетевого пользователя из вашей системы. Если у вас возникнут дополнительные вопросы или проблемы, не стесняйтесь задавать их.