Website-Suche

Finden Sie Benutzerkonten mit leerem Passwort unter Linux


Erkennen Sie passwortlose Benutzerkonten unter Linux

Die schlechteste Art von Passwort ist kein schwaches Passwort, sondern überhaupt kein Passwort. Als Systemadministrator müssen Sie sicherstellen, dass jedes Benutzerkonto über ein sicheres Passwort verfügt. In diesem kurzen Tutorial wird erklärt, wie Sie Benutzerkonten mit leerem Passwort unter Linux finden.

Bevor wir uns mit dem Thema befassen, werfen wir einen kurzen Rückblick auf die Shadow-Datei und ihren Zweck.

Was ist eine Shadow-Passwortdatei?

In RHEL-Systemen werden die Benutzerkennwörter gehasht und in einer sicheren Datei namens /etc/shadow gespeichert. Die Shadow-Passwortdatei enthält die Benutzerauthentifizierungs- und Passwortalterungsdetails der Benutzerkonten.

Die Shadow-Passwortdatei gehört dem Benutzer root und ist nur für Superuser lesbar. Sie können den Besitz und die Berechtigung der Schattendatei mit dem folgenden Befehl überprüfen:

ls -l /etc/shadow
---------- 1 root root 618 Apr  7 07:52 /etc/shadow

Die typische Struktur einer Beispielzeile aus der Schattendatei ist unten angegeben.

user1:$6$5ps/XV21$EFmQ463GJZnsdF/:19089:0:99999:7:::

Wie Sie vielleicht bereits wissen, besteht die Schattendatei aus neun Feldern, die durch einen Doppelpunkt getrennt sind.

Werfen wir einen kurzen Blick auf jedes Feld.

  • Ablage 1 (Anmeldename) - Enthält den Anmeldenamen (Benutzer1), wie er in der Datei passwd erscheint.
  • Datei 2 (verschlüsseltes Passwort) - Diese Datei enthält das gehashte (verschlüsselte) Passwort des Benutzers. Wenn am Anfang dieser Datei ein einzelnes Ausrufezeichen (!) steht, bedeutet dies, dass das Benutzerkonto gesperrt ist. Wenn dieses Feld leer ist, hat der Benutzer kein Passwort.
  • Ablage 3 (Letzte Änderung) - Dieses Feld zeigt die Anzahl der Tage seit der Unix-Epoche (d. h. Unix-Zeit - 1. Januar 1970 00:00:00 UTC), als das Passwort zuletzt geändert wurde. Wenn dieses Feld 0 enthält, ist der Benutzer gezwungen, sein Passwort bei der nächsten Anmeldung zu ändern.
  • Abgelegt 4 (Minimum) - Dieses Feld zeigt die Mindestanzahl an Tagen (Minddays) an, die vergehen müssen, bevor der Benutzer sein Passwort ändern darf. Sie können diesen abgelegten Wert mit dem Befehl chage und der Option -m ändern.
  • Feld 5 (Maximum) - Zeigt die maximale Anzahl an Tagen (maxdays) der Passwortgültigkeit an, bevor das Benutzerpasswort abläuft. Wenn das Feld 0 ist, bedeutet dies, dass diese Funktion deaktiviert ist. Der Wert dieses Feldes kann mit dem Befehl chage und der Option -M geändert werden.
  • Feld 6 (Warnung) - Gibt die Anzahl der Tage (Warntage) an, für die der Benutzer Warnungen erhält, wenn er sein Passwort ändert, bevor es abläuft. Sie können diesen Wert mit dem Befehl chage mit der Option -W oder dem Befehl passwd mit der Option -w ändern.
  • Feld 7 (Ablauf des Passworts) - Definiert die maximal zulässige Anzahl von Tagen, in denen sich der Benutzer mit dem abgelaufenen Passwort anmelden kann. Dies kann mit dem Befehl chage mit dem Flag -I oder dem Befehl passwd mit dem Flag -i geändert werden.
  • Feld 8 (Kontoablauf) - Definiert die Anzahl der Tage seit dem UNIX-Zeitpunkt, an dem das Benutzerkonto abläuft und nicht mehr verfügbar ist. Sie können den Wert dieses Feldes mit dem Befehl chage und der Option -E ändern.
  • Feld 9 (Reserviert) - Dieses Feld ist für die zukünftige Verwendung reserviert.

Wie oben erwähnt, werden die verschlüsselten Passwörter im zweiten Feld jedes Eintrags in der Shadow-Passwortdatei direkt nach dem Benutzernamen gespeichert.

Wenn also das zweite Feld in der Schattendatei leer ist, hat der Benutzer kein Passwort. Erlauben Sie mir, Ihnen ein Beispiel zu zeigen, um alle passwortlosen Benutzerkonten zu finden.

Finden Sie alle Benutzerkonten ohne Passwort unter Linux

Um alle lokalen Benutzerkonten zu erkennen, die kein Passwort haben, führen Sie einfach den folgenden Befehl als root-Benutzer aus:

awk -F: '$2 == "" { print $1, "has empty password!. Please set a strong password ASAP!!" }' /etc/shadow

Beispielausgabe:

ostechnix has empty password!. Please set a strong password ASAP!!

Sie können den Befehl getent auch in Kombination mit den Befehlen grep und cut verwenden, um passwortlose lokale Benutzerkonten unter Linux zu identifizieren.

getent shadow | grep -Po '^[^:]*(?=::)'

Oder,

getent shadow | grep '^[^:]*::' | cut -d: -f1

Alle oben genannten Befehle listen nur die lokalen Benutzerkonten auf, die leere Passwörter haben. Wenn Sie sowohl die Systemkonten als auch die Benutzerkonten mit leerem Passwort auflisten möchten, führen Sie Folgendes aus.

getent shadow | grep -Po '^[^:]*(?=:.?:)'

Oder,

getent shadow | grep '^[^:]*:.\?:' | cut -d: -f1

Suchen Sie nach Benutzerkonten mit leerem Passwort

Suchen Sie ein bestimmtes passwortloses Benutzerkonto

Die obigen Befehle listen alle lokalen und Systemkonten auf, die kein Passwort haben. Sie können den Passwortstatus eines bestimmten Benutzerkontos auch mit dem Befehl passwd und dem Flag -S überprüfen.

passwd -S ostechnix

Beispielausgabe:

ostechnix NP 2022-04-07 0 99999 7 -1 (Empty password.)

Die Befehle passwd zeigen den Passwortstatus des angegebenen Benutzerkontos an. Die möglichen Werte sind:

  • LK - Das Benutzerkonto ist gesperrt.
  • NP - Das Benutzerkonto hat kein Passwort.
  • PS - Das Benutzerkonto verfügt über ein verwendbares Passwort.

Hinweis: In Debian-basierten Systemen wird der Passwortstatus als L, N bzw. P angegeben .

Benutzerkennwort unter Linux festlegen

Sie können sich als Benutzer ohne Passwort anmelden, das ist völlig in Ordnung. Es wird jedoch nicht empfohlen! Sie müssen ein sicheres Passwort mit mindestens 8 Zeichen festlegen, darunter Großbuchstaben, Kleinbuchstaben, ein Sonderzeichen und eine Zahl.

Um unter Linux ein Kennwort für ein Benutzerkonto festzulegen, verwenden Sie den Befehl passwd als Benutzer root wie unten beschrieben.

Als Root-Benutzer:

passwd ostechnix

Ersetzen Sie ostechnix durch Ihren eigenen Benutzernamen.

Überprüfen Sie nun den Passwortstatus des Benutzerkontos mit dem Befehl passwd:

passwd -S ostechnix

Beispielausgabe:

ostechnix PS 2022-04-07 0 99999 7 -1 (Password set, SHA512 crypt.)

Legen Sie unter Linux das Passwort für den Benutzer fest

Benutzerkonten unter Linux sperren

Manchmal möchten Sie einfach die Benutzerkonten mit leeren Passwörtern sperren. Wenn ja, suchen Sie zunächst die Benutzer mit leeren Passwörtern wie oben beschrieben und sperren Sie sie mit dem Befehl passwd mit dem Flag -l als root< Benutzer wie unten.

passwd -l ostechnix

Beispielausgabe:

Locking password for user ostechnix.
passwd: Success

Überprüfen Sie nun den Status des Benutzerkontos:

passwd -S ostechnix

Beispielausgabe:

ostechnix LK 2022-04-07 0 99999 7 -1 (Password locked.)

Sehen? Der Benutzer wurde gesperrt. Er kann sich nicht mehr beim System anmelden.

Sie können auch den Befehl usermod mit dem Flag -L (Großbuchstabe L) verwenden, um einen Benutzer zu sperren.

usermod -L ostechnix

Entsperren Sie Benutzerkonten unter Linux

Um die passwortlosen Benutzer unter Linux zu entsperren, verwenden Sie entweder den Befehl passwd oder den Befehl usermod mit -p als root Benutzer.

passwd ostechnix

Geben Sie das Passwort zweimal ein, um das Passwort zu entsperren.

Das Entsperren von Benutzern mit leerem Passwort mit dem Befehl usermod ist nicht möglich. Sie sollten ein Passwort mit usermod -p festlegen, um das Passwort des Benutzers zu entsperren.

usermod -p <password-here> ostechnix

Abschluss

In diesem Tutorial haben wir erklärt, was eine Shadow-Passwortdatei ist und welchen Zweck diese Datei unter Linux hat. Dann haben wir verschiedene Befehle besprochen, um unter Linux alle Benutzerkonten zu finden, die kein Passwort haben. Schließlich haben wir gelernt, wie man ein Passwort für einen Benutzer festlegt und wie man die Benutzer unter Linux sperrt und entsperrt.

Verwandte Artikel