Wie können Sie feststellen, ob sich ein Benutzer unter Linux "anmelden" darf?

12

Die Frage ist einfach: Ich möchte alle Benutzerkonten auflisten, die sich bei meinem System anmelden können, bin mir aber nicht sicher, ob alle Benutzer in / etc / passwd "sich anmelden können"?

Einzelheiten:

Ich kann Benutzer sehen, deren Shells auf /usr/sbin/nologinund /bin/falsein gesetzt /etc/passwdsind. Bedeutet das, dass sie sich nicht anmelden können?

Ich weiß auch, dass ich das verschlüsselte Passwort des Benutzers auf *oder !in setzen kann /etc/shadow, um ein Konto zu deaktivieren, daher sollte der "deaktivierte Benutzer" auch als "nicht anmelden" -Benutzer behandelt werden, oder?

Harryz
quelle

Antworten:

13

Eine Menge davon hängt von Ihrer Definition von „log in“ - technisch alle Benutzer , die existiert in /etc/passwd& /etc/shadowist ein „gültigen“ und theoretisch in unter der rechten Reihe von Umständen einloggen konnte.

Die Methoden, über die Sie sprechen, lassen sich in die folgenden Kategorien einteilen:

  • Benutzer mit "gesperrten" Konten
    Ein Benutzer, dessen Kennwort auf "Gesperrt" festgelegt *ist !, oder ein anderer Hash, der niemals übereinstimmt, wird "gesperrt" (an den Sonnentagen lautete die Konvention häufig *LK*"Gesperrt").
    Diese Benutzer können sich nicht anmelden , indem Sie ein Passwort eingeben , aber sie können noch andere Authentifizierungsmechanismen log mit (SSH - Schlüssel, zum Beispiel).

  • Benutzer mit einer "nicht interaktiven" Shell
    Ein Benutzer, dessen Konto über eine "nicht interaktive Shell" ( /bin/false, /sbin/nologin) verfügt, kann sich nicht interaktiv anmelden, dh er kann keine Shell-Eingabeaufforderung zum Ausführen von Befehlen erhalten (dies verhindert auch SSH) Befehlsausführung, wenn der Benutzer SSH-Schlüssel auf dem System hat).
    Diese Benutzer können sich möglicherweise weiterhin anmelden, um E-Mails zu lesen / senden (über POP / IMAP & SMTP AUTH). Das Festlegen einer nicht interaktiven Shell für Benutzer, die die Shell niemals benötigen sollten (und für die meisten "Dienstkonten"), wird im Allgemeinen als bewährte Methode angesehen.

Abhängig von Ihren Kriterien für "Anmeldung möglich" möchten Sie möglicherweise eines oder beide dieser Dinge überprüfen.

voretaq7
quelle
6

Es gibt einen Unterschied zwischen dem Deaktivieren des Benutzers und dem Setzen der Shell auf / bin / false oder ähnliches.

Das Setzen der Shell auf / bin / false verhindert, dass der Benutzer eine Shell erhält. Er kann sich jedoch weiterhin beim System anmelden, wenn lokale Benutzer für andere Zwecke verwendet werden (E-Mail-Authentifizierung, FTP usw.). Das Deaktivieren des Benutzers macht es ihm unmöglich, Dienste des Servers zu verwenden, die lokale Benutzer verwenden.

Pentium100
quelle
Also sind eigentlich alle Benutzer in / etc / passwd "könnten sich anmelden" Benutzer, aber einige von ihnen sind deaktiviert (*!) und einige von ihnen sind eingeschränkt (/ bin / false)?
Harryz
3

Darüber hinaus können Benutzer von einem System ausgeschlossen werden, obwohl ihre Kennworteingabe mit verschiedenen Methoden korrekt aussieht.

Mit /etc/security/access.conf können Sie einschränken, wer sich anmelden darf.

Es gibt viele PAM-Module, die konfiguriert werden können, um bestimmte Benutzer einzuschränken oder das Anmeldeverhalten nach Bedarf zu ändern. (dh kein Home-Verzeichnis auf dem Server erlaubt keine Anmeldung.)

billq
quelle