/etc/securettyконсультируется модулем pam_securetty, чтобы решить, с какого корневого терминала (ttyS) разрешено входить в систему. В прошлом /etc/securettyк таким программам, как вход в систему , обращались напрямую, но теперь PAM справляется с этим. Таким образом, изменения /etc/securettyвлияют на что-либо, использующее PAM с файлом конфигурации, который использует pam_securetty.so. Таким образом, только программа входа в систему затрагивается по умолчанию. /etc/pam.d/loginиспользуется для локальных входов в систему и /etc/pam.d/remoteиспользуется для удаленных входов в систему (например, telnet).
Основные типы записей и их влияние следующие:
- Если
/etc/securettyне существует, root может войти в систему с любого tty
- Если
/etc/securettyсуществует и пуст, корневой доступ будет ограничен однопользовательским режимом или программами, которые не ограничены pam_securetty (то есть su, sudo, ssh, scp, sftp)
- если вы используете devfs (устаревшая файловая система для обработки / dev), добавление записей в форме vc / [0-9] * позволит получить root-доступ с данного номера виртуальной консоли
- если вы используете udev (для динамического управления устройством и замены для devfs), добавление записей в формате tty [0-9] * позволит получить root-доступ с данного номера виртуальной консоли
- перечисление консоли в securetty обычно не имеет никакого эффекта, поскольку / dev / console указывает на текущую консоль и обычно используется только в качестве имени файла tty в однопользовательском режиме, на который не влияет
/etc/securetty
- добавление записей типа pts / [0-9] * позволит программам, использующим псевдо-терминалы (pty) и pam_securetty, войти в систему с правами root, предполагая, что выделенный pty является одним из перечисленных; как правило, не стоит включать эти записи, потому что это угроза безопасности; это позволит, например, кому-то войти в root через telenet, который отправляет пароли в виде открытого текста (обратите внимание, что pts / [0-9] * - это формат для udev, который используется в RHEL 5.5; он будет другим, если использовать devfs или какая-то другая форма управления устройством)
Для однопользовательского режима /etc/securettyне используется, потому что вместо логина используется sulogin. Смотрите страницу руководства sulogin для получения дополнительной информации. Также вы можете изменить программу входа в систему, используемую /etc/inittabдля каждого уровня запуска.
Обратите внимание, что вам не следует использовать /etc/securettyдля управления root-входами через ssh. Для этого измените значение PermitRootLogin в /etc/ssh/sshd_config. По умолчанию /etc/pam.d/sshdне настроен для обращения к pam_securetty (и поэтому /etc/securetty). Вы можете добавить строку, чтобы сделать это, но ssh не устанавливает фактический tty, пока не пройдет некоторое время после этапа аутентификации, поэтому он не работает должным образом. На этапах авторизации и учетной записи - по крайней мере, для openssh - tty (PAM_TTY) жестко закодирован в "ssh".
Приведенный выше ответ основан на RHEL 5.5. Многое из этого будет относиться к текущим дистрибутивам других * nix систем, но есть различия, некоторые из которых я отметил, но не все.
Я ответил на это сам, потому что другие ответы были неполными и / или неточными. Многие другие форумы, блоги и т. Д. В Интернете также содержат неточную и неполную информацию по этой теме, поэтому я провел обширные исследования и тестирование, чтобы попытаться получить правильные детали. Если что-то, что я сказал, неверно, пожалуйста, дайте мне знать.
Источники: