/etc/securetty
jest konsultowany przez moduł pam_securetty, aby zdecydować, z którego katalogu głównego terminali wirtualnych (ttyS) można się zalogować. W przeszłości /etc/securetty
konsultowano się z takimi programami, jak logowanie bezpośrednie, ale teraz PAM to obsługuje. Tak więc zmiany /etc/securetty
wpłyną na wszystko przy użyciu PAM z plikiem konfiguracyjnym, który używa pam_securetty.so. Tak więc domyślnie dotyczy to tylko programu logowania. /etc/pam.d/login
służy do logowania lokalnego i /etc/pam.d/remote
służy do zdalnego logowania (np. telnet).
Podstawowe typy wpisów i ich wpływ są następujące:
- Jeśli
/etc/securetty
nie istnieje, root może zalogować się z dowolnego tty
- Jeśli
/etc/securetty
istnieje i jest pusty, dostęp do konta root zostanie ograniczony do trybu jednego użytkownika lub programów, które nie są ograniczone przez pam_securetty (tj. Su, sudo, ssh, scp, sftp)
- jeśli używasz devfs (przestarzały system plików do obsługi / dev), dodanie wpisów w formie vc / [0-9] * pozwoli na zalogowanie roota z podanego numeru wirtualnej konsoli
- jeśli używasz udev (do dynamicznego zarządzania urządzeniami i zamiany na devfs), dodanie wpisów z formularza tty [0-9] * pozwoli na zalogowanie roota z podanego numeru konsoli wirtualnej
- wyświetlenie konsoli w Securetty zwykle nie ma żadnego efektu, ponieważ / dev / console wskazuje na bieżącą konsolę i zwykle jest używana tylko jako nazwa pliku tty w trybie pojedynczego użytkownika, na co nie ma wpływu
/etc/securetty
- dodanie wpisów takich jak pts / [0-9] * pozwoli programom używającym pseudo-terminali (pty) i pam_securetty zalogować się do roota, zakładając, że przydzielony pty jest jednym z wymienionych; zwykle dobrym pomysłem jest nieuwzględnianie tych wpisów, ponieważ stanowi to zagrożenie bezpieczeństwa; pozwoliłby na przykład komuś zalogować się do roota przez telenet, który wysyła hasła w postaci zwykłego tekstu (zauważ, że pts / [0-9] * jest formatem udev używanym w RHEL 5.5; inaczej będzie, jeśli użyjesz devfs lub inna forma zarządzania urządzeniem)
W przypadku trybu pojedynczego użytkownika /etc/securetty
nie jest konsultowane, ponieważ zamiast logowania używana jest sulogina. Zobacz stronę podręcznika użytkownika sulogin, aby uzyskać więcej informacji. Możesz także zmienić program logowania używany /etc/inittab
dla każdego poziomu pracy.
Zauważ, że nie powinieneś używać /etc/securetty
do kontrolowania loginów root poprzez ssh. Aby to zrobić, zmień wartość PermitRootLogin w /etc/ssh/sshd_config
. Domyślnie /etc/pam.d/sshd
nie jest skonfigurowany do przeglądania pam_securetty (i dlatego /etc/securetty
). Możesz dodać linię, aby to zrobić, ale ssh nie ustawia rzeczywistego tty, dopóki jakiś czas po etapie autoryzacji, więc nie działa zgodnie z oczekiwaniami. Na etapie uwierzytelniania i konta - przynajmniej dla openssh - tty (PAM_TTY) jest na stałe zakodowane na „ssh”.
Powyższa odpowiedź oparta jest na RHEL 5.5. Wiele z nich dotyczy bieżących dystrybucji innych systemów * nix, ale istnieją różnice, z których niektóre zauważyłem, ale nie wszystkie.
Sam na to odpowiedziałem, ponieważ inne odpowiedzi były niepełne i / lub niedokładne. Wiele innych forów, blogów itp. W Internecie zawiera również niedokładne i niekompletne informacje w tym temacie, dlatego przeprowadziłem szeroko zakrojone badania i testy, aby uzyskać prawidłowe szczegóły. Jeśli cokolwiek, co powiedziałem, jest złe, daj mi jednak znać.
Źródła: