Назад | Перейти на главную страницу

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

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

Подробности:

Я вижу пользователей, оболочки которых настроены на /usr/sbin/nologin и /bin/false в /etc/passwd, значит ли это, что они не могут войти в систему?

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

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

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

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

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

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

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

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

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

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

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