LINUX.ORG.RU
ФорумAdmin

Как отключить пользователя?

 


0

2

Вопрос: как отключить пользователя в любом дистрибутиве Linux и FreeBSD? То есть сделать так, чтобы под пользователем был невозможен интерактивный вход и выполнение любого процесса.
Гугл советует писать "!" во второе поле /etc/shadow, я пробовал - да, этот способ делает невозможным интерактивный вход по паролю, но возможно войти через ssh по ключу и возможно (не пробовал) через bash-скрипт с установленым suid-битом. Задача совсем другая - отключить интерактивный вход вообще, но сохранить пароль, чтобы в будущем можно было пользователя включить обратно.
Если я в /etc/passwd добавлю ";" в начало строки это решит задачу? Я так понимаю это действие равносильно удалению пользователя из системы: не возможен будет ни интерактивный вход, ни запуск сервисов, настроеных работать с правами этого пользователя. Нужно отключить только интерактивный вход.

★★★★★

Закоментируй строку символом «#» либо в качестве командной оболочки поставить «/bin/false».

kostik87 ★★★★★
()

установить шел пользователю /bin/nologin или /bin/false

outsider ★★
()
Ответ на: комментарий от MLP_Fan

Для ценителей:

cp /etc/passwd /tmp/passwd && \
awk 'BEGIN {OFS=FS=":"} {if ($1 == "<username>") $7 = "/bin/false"} {print}' /tmp/passwd > /tmp/passwd_new &&\
cat /tmp/passwd_new &&\
sudo cp -i /tmp/passwd_new /etc/passwd

Deleted
()

чтобы под пользователем был невозможен интерактивный вход

сменить шелл на /bin/nologin

и выполнение любого процесса

а это невозможно, т. к. пользователь — это прежде всего его UID, а рут может запустить процесс под любым UID.

intelfx ★★★★★
()
Ответ на: комментарий от intelfx

а это невозможно, т. к. пользователь — это прежде всего его UID, а рут может запустить процесс под любым UID.

А если в /etc/passwd будет закомментирована строка с UID то невозможно?

sunny1983 ★★★★★
() автор топика
Ответ на: комментарий от sunny1983

Ядру начхать на passwd, поэтому «выполнение любого процесса» ты не запретишь.

Правильнее вести разговор о том, как запретить какому-то конкретному средству аутентификации собственно аутентифицировать кого-либо под именем этого пользователя.

Если речь идёт о PAM, то можно добавить во все файлы конфигурации PAM строчку с required pam_succeed_if.so user != тот-кого-запрещаем.

Если речь идёт о классической схеме с passwd/shadow, то можно дописать в начало хеша пароля символ, котого в этом хеше быть не может (например, восклицатель), но опять же рутовый процесс может сменить свой UID на «запрещённый» в любом случае, и никакой passwd/shadow ему не помеха. Пример — sshd и аутентификация по ключам.

Но если цель именно «заставить систему забыть про указанное классическое имя пользователя», то да, достаточно закомментить.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от sunny1983
# sudo -u#1337 whoami
whoami: невозможно определить имя пользователя для ID 1337

То есть, от рута процесс запускается с произвольным UID, независимо от его наличия в /etc/passwd.

JaneDoe
()
Ответ на: комментарий от intelfx

Если ты имеешь в виду /etc/pam.d - то там их более десятка.
Почему возник этот вопрос - нужно запретить предыдущему админу заходить а сервер, но на нём могут быть сервисы, корректно работающие только из-под этого пользователя.

sunny1983 ★★★★★
() автор топика
Ответ на: комментарий от sunny1983

Сменить шелл на nologin, убрать SSH-ключи, отключить пароль (восклицатель в начало хэша, ну или passwd --lock).

intelfx ★★★★★
()
Ответ на: комментарий от anonymous

И происходит ровно нихрена полезного - везде в интерфейсе когда спрашивает пароль предлагает в качестве варианта этого типа отключенного пользователя. Задолбали.

Тож склоняюсь к варианту что тупо закомментить в passwd будет гораздо эффективнее.

anonymous
()
Ответ на: комментарий от sunny1983

Не важно. Каким-либо образом отключить.

intelfx ★★★★★
()
Ответ на: комментарий от sunny1983

но на нём могут быть сервисы, корректно работающие только из-под этого пользователя.

Поискать, изменить права, исправить конфиги, удалить пользователя - в голову не приходило? Не такая уж и сложная операция, скорее долгая, но не сложная.

anc ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.