Невозможно удалить пользователя – запись отсутствует в /etc/passwd – (сетевой пользователь)

Вопрос или проблема

Я выполнил

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.

Шаги для решения проблемы:

  1. Определите способ аутентификации. Убедитесь, что у вас есть информация о том, каким образом пользователи аутентифицируются в вашей сети. Возможно, они используют Kerberos, LDAP или другую сетевую службу.

  2. Используйте соответствующие инструменты для управления пользователями. В зависимости от системы аутентификации вам нужно использовать правильные утилиты для удаления пользователя:

    • Для Kerberos вы можете использовать kadmin для удаления пользователя.
    • Для LDAP используйте утилиты вроде ldapdelete для удаления сетевого пользователя.
  3. Система Winbind. Если вы используете Winbind (например, для интеграции с Active Directory), вам может потребоваться остановить соответствующие службы, чтобы создать или удалить пользователя, как вы уже упомянули.

  4. Остановка служб: Перед выполнением удаления пользователя, остановите службы, которые могут блокировать изменения:

    sudo systemctl stop smb winbind
  5. Удаление пользователя: После остановки служб попробуйте снова удалить пользователя, используя команды управления пользователями, соответствующие вашей настройке:

    sudo net ads user delete <username>  # Если используется Samba/Winbind
  6. Завершение работы: После выполнения всех изменений перезапустите остановленные службы:

    sudo systemctl start smb winbind

Дополнительные рекомендации:

  • Убедитесь, что у вас есть соответствующие административные права для выполнения этих операций.
  • Проверьте конфигурацию вашего nsswitch.conf, если необходимо, чтобы убедиться, что ваши настройки аутентификации соответствуют вашим требованиям.
  • Используйте getent passwd <username> для проверки фактического существования записи пользователя в системе.

Следуя данным шагам, вы сможете успешно удалить сетевого пользователя из вашей системы. Если у вас возникнут дополнительные вопросы или проблемы, не стесняйтесь задавать их.

Оцените материал
Добавить комментарий

Капча загружается...