Jak sprawdzić, czy użytkownik może „zalogować się” w systemie Linux?

12

Pytanie jest proste: chcę wymienić wszystkie konta użytkowników, które mogą zalogować się do mojego systemu, ale nie jestem pewien, czy wszyscy użytkownicy w / etc / passwd są użytkownikami „mogącymi się zalogować”?

Detale:

Widzę użytkownicy, których muszle są ustawione /usr/sbin/nologini /bin/falsew /etc/passwd, to znaczy, że nie mogę się zalogować?

Wiem również, że mogę ustawić zaszyfrowane hasło użytkownika na *lub !w /etc/shadowcelu wyłączenia konta, więc „wyłączony użytkownik” powinien być również traktowany jako użytkownik „nie może się zalogować”, prawda?

harryz
źródło

Odpowiedzi:

13

Wiele z tego zależy od twojej definicji „zaloguj się” - technicznie każdy użytkownik, który istnieje w /etc/passwd& /etc/shadowjest „prawidłowym użytkownikiem” i teoretycznie może zalogować się w odpowiednich okolicznościach.

Metody, o których mówisz, dzielą się na następujące szerokie kategorie:

  • Użytkownicy z „zablokowanymi” kontami
    Użytkownik, którego hasło jest ustawione na *, !lub jakiś inny skrót, który nigdy nie będzie pasował, jest „zablokowany” (w dni słoneczne często obowiązywała konwencja *LK*dla „Zablokowanych”).
    Ci użytkownicy nie mogą się zalogować , wpisując hasło , ale nadal mogą się logować przy użyciu innych mechanizmów uwierzytelniania (na przykład kluczy SSH).

  • Użytkownicy z powłoką „nieinteraktywną”
    Użytkownik, którego konto ma „powłokę nieinteraktywną” ( /bin/false, /sbin/nologin), nie może zalogować się interaktywnie - tzn. Nie może otrzymać polecenia powłoki w celu uruchomienia poleceń (zapobiega to również SSH wykonanie polecenia, jeśli użytkownik ma klucze SSH w systemie).
    Ci użytkownicy mogą nadal być w stanie zalogować się, aby wykonywać takie czynności, jak czytanie / wysyłanie wiadomości e-mail (za pośrednictwem POP / IMAP i SMTP AUTH). Ustawienie nieinteraktywnej powłoki dla użytkowników, którzy nigdy nie powinni jej używać (i dla większości „kont usług”) jest ogólnie uważane za dobrą praktykę.

Dlatego w zależności od kryteriów „możliwości zalogowania się” możesz sprawdzić jedną lub obie te rzeczy.

voretaq7
źródło
6

Istnieje różnica między wyłączeniem użytkownika a ustawieniem powłoki na / bin / false lub podobnie.

Ustawienie powłoki na / bin / false uniemożliwia użytkownikowi uzyskanie powłoki, ale nadal może zalogować się do systemu, jeśli lokalni użytkownicy są wykorzystywani do czegoś innego (uwierzytelnianie poczty, ftp itd.). Wyłączenie użytkownika uniemożliwia mu korzystanie z usług serwera korzystających z lokalnych użytkowników.

Pentium100
źródło
więc właściwie wszyscy użytkownicy w / etc / passwd są użytkownikami, którzy mogą „zalogować się”, ale niektórzy z nich są wyłączeni (*!), a niektórzy z nich są ograniczeni (/ bin / false)?
harryz
3

Oprócz powyższego użytkownicy mogą zostać zablokowani w systemie, nawet jeśli ich hasło wygląda poprawnie przy użyciu kilku różnych metod.

/etc/security/access.conf można wykorzystać do ograniczenia liczby osób, które mogą się zalogować.

Istnieje wiele modułów PAM, które można skonfigurować w celu ograniczenia określonych użytkowników lub zmodyfikowania sposobu logowania w zależności od potrzeb. (tzn. brak katalogu domowego na serwerze nie zezwala na logowanie).

Billq
źródło