Как определить, разрешено ли пользователю входить в систему в Linux?

12

Вопрос прост: я хочу перечислить все учетные записи пользователей, которые могут входить в мою систему, но я не уверен, что все пользователи в / etc / passwd являются «входящими» пользователями?

Детали:

Я могу видеть пользователей , чьи оболочки устанавливаются /usr/sbin/nologinи /bin/falseв /etc/passwd, это означает , что они не могут Войти?

Я также знаю , что я могу установить зашифрованный пароль пользователя *или !в /etc/shadowотключить учетную запись, так что «отключенный пользователь» также должен быть лакомством , как «не может войти» пользователь, не так ли?

harryz
источник

Ответы:

13

Многое из этого зависит от вашего определения «войти» - технически любой пользователь, который существует в /etc/passwd& /etc/shadowявляется «действительным пользователем» и теоретически может войти в систему при правильном наборе обстоятельств.

Методы, о которых вы говорите, попадают в следующие широкие категории:

  • Пользователи с «заблокирован» счета
    пользователя , чей пароль установлен *, !или какой - либо другой хэш , который никогда не будет матч «блокированной» (в дни Sun соглашение было часто *LK*, для «Locked»).
    Эти пользователи не могут войти в систему , введя пароль , но они все равно могут войти в систему, используя другие механизмы аутентификации (например, ключи SSH).

  • Пользователи с «неинтерактивной» оболочкой
    Пользователь, чья учетная запись имеет «неинтерактивную оболочку» ( /bin/false, /sbin/nologin), не может войти в систему в интерактивном режиме - то есть он не может получить приглашение оболочки для запуска команд (это также предотвращает SSH). выполнение команды, если у пользователя есть ключи SSH в системе).
    Эти пользователи могут по-прежнему иметь возможность войти в систему, например, для чтения / отправки электронной почты (через POP / IMAP и SMTP AUTH). Установка неинтерактивной оболочки для пользователей, которым никогда не нужно использовать оболочку (и для большинства «учетных записей служб»), обычно считается хорошей практикой.

Таким образом, в зависимости от ваших критериев для «возможности входа в систему» ​​вы можете проверить один или оба из этих вещей.

voretaq7
источник
6

Существует разница между отключением пользователя и установкой оболочки в / bin / false или аналогичной.

Установка оболочки в / bin / false не дает пользователю получить оболочку, но он все равно может войти в систему, если локальные пользователи используются для чего-то другого (аутентификация почты, ftp и т. Д.). Отключение пользователя делает невозможным использование каких-либо служб сервера, которые используют локальные пользователи.

Pentium 100
источник
Итак, на самом деле все пользователи в / etc / passwd «могут войти», но некоторые из них отключены (*!), а некоторые ограничены (/ bin / false)?
Harryz
3

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

/etc/security/access.conf можно использовать для ограничения числа тех, кто может войти в систему.

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

billq
источник