/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] * дозволить увійти в систему з вказаного номера віртуальної консолі
- якщо ви використовуєте udev (для динамічного керування пристроєм та заміни devfs), додавання записів форми tty [0-9] * дозволить кореневий вхід із заданого номера віртуальної консолі
- Перерахування консолі в безпеці, як правило, не має ефекту, оскільки / dev / console вказує на поточну консоль, і зазвичай використовується лише як ім'я файлу tty в режимі одиночного користувача, на що не впливає
/etc/securetty
- додавання записів, таких як pts / [0-9] *, дозволить програмам, які використовують псевдотермінали (pty) та pam_securetty, входити в корінь, припускаючи, що виділений pty є одним із перелічених; зазвичай не рекомендується включати ці записи, оскільки це ризик для безпеки; це дозволило б, наприклад, комусь увійти в root через теленет, який надсилає паролі в простому тексті (зауважте, що pts / [0-9] * - це формат для udev, який використовується в RHEL 5.5; він буде іншим, якщо використовувати devfs або іншої форми управління пристроєм)
У режимі одиночного користувача /etc/securetty
не проводиться консультація, оскільки замість входу використовується сулогін. Для отримання додаткової інформації дивіться сторінку чоловіка із сулогіном. Також ви можете змінити програму входу, що використовується /etc/inittab
для кожного рівня запуску.
Зауважте, що вам не слід використовувати /etc/securetty
для керування кореневими логінами через ssh. Для цього змініть значення PermitRootLogin в /etc/ssh/sshd_config
. За замовчуванням /etc/pam.d/sshd
не налаштовано для консультування з пам’яткою (та, отже /etc/securetty
). Ви можете додати рядок, щоб це зробити, але ssh не встановлює фактичну tty лише десь після етапу auth, тому він не працює, як очікувалося. Під час етапів auth та account - принаймні для openssh - tty (PAM_TTY) важко кодується до "ssh".
Вищенаведена відповідь ґрунтується на RHEL 5.5. Значна частина цього стосуватиметься поточних розподілів інших * nix систем, але є відмінності, деякі з яких я зазначив, але не всі.
Я відповів на це сам, оскільки інші відповіді були неповними та / або неточними. Багато інших форумів, блогів тощо в Інтернеті також мають неточну та неповну інформацію в цій темі, тому я провів широкі дослідження та тестування, щоб спробувати отримати правильні деталі. Якщо все, що я сказав, не так, будь ласка, повідомте мене.
Джерела: