Das schlechteste Passwort ist kein schwaches Passwort, sondern gar kein Passwort. Als Systemadministrator müssen Sie sicherstellen, dass jedes Benutzerkonto ein sicheres Passwort hat. Dieses kurze Tutorial erklärt, wie man Benutzerkonten mit leerem Passwort in Linux findet.
Bevor wir uns mit dem Thema befassen, lassen Sie uns eine kurze Zusammenfassung von Schatten geben Datei und ihren Zweck.
Was ist eine Shadow-Passwortdatei?
In RHEL-Systemen werden die Benutzerpasswörter gehasht und in einer sicheren Datei namens /etc/shadow
gespeichert . Die Shadow-Passwortdatei enthält die Benutzerauthentifizierung und die Passwortalterungsdetails der Benutzerkonten.
Die Shadow-Passwortdatei gehört dem root
user 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, hat die Schattendatei neun Felder getrennt durch einen Doppelpunkt.
Lassen Sie uns einen kurzen Blick auf jedes Feld werfen.
- Eintrag 1 (Anmeldename) - Enthält den Login-Namen (user1), wie er im
passwd
erscheint Datei. - Datei 2 (verschlüsseltes Passwort) - Dieses Feld 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.
- Eingereicht 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) an, als das Passwort zuletzt geändert wurde. Wenn dieses Feld 0 enthält, wird der Benutzer gezwungen, sein Passwort bei der nächsten Anmeldung zu ändern.
- Eingereicht 4 (Minimum) - Dieses Feld zeigt die Mindestanzahl von Tagen (Minuten) an, die vergehen müssen, bevor der Benutzer sein Passwort ändern darf. Sie können diesen Feldwert mit
chage
ändern Befehl mit-m
Möglichkeit. - Feld 5 (Maximum) - Zeigt die maximale Anzahl von Tagen (maxdays) der Kennwortgültigkeit an, bevor das Benutzerkennwort abläuft. Wenn das Feld 0 ist, bedeutet dies, dass diese Funktion deaktiviert ist. Der Wert dieses Feldes kann mit
chage
geändert werden Befehl mit-M
Möglichkeit. - Eingereicht 6 (Warnung) - Gibt die Anzahl der Tage (Warntage) an, für die der Benutzer Warnungen erhält, wenn er sein Kennwort ändert, bevor es abläuft. Sie können diesen Wert mit
chage
ändern Befehl mit-W
Option oder daspasswd
Befehl mit-w
Möglichkeit. - Feld 7 (Passwortablauf) - Definiert die maximal zulässige Anzahl von Tagen, in denen sich der Benutzer mit dem abgelaufenen Passwort anmelden kann. Dies kann mit
chage
geändert werden Befehl mit-I
flag oderpasswd
Befehl mit-i
Flagge. - Feld 8 (Kontoablauf) - Definiert die Anzahl der Tage seit der UNIX-Zeit, in denen das Benutzerkonto abläuft und nicht mehr verfügbar ist. Sie können den Wert dieses Felds mit
chage
ändern Befehl mit-E
Möglichkeit. - Feld 9 (Reserviert) - Dieses Feld ist für 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.
Alle Benutzerkonten ohne Passwort in Linux finden
Um alle lokalen Benutzerkonten ohne Passwort zu erkennen, führen Sie einfach den folgenden Befehl als root
aus Benutzer:
# 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 auch getent
verwenden Befehl kombiniert mit grep
und cut
Befehle zum Identifizieren passwortloser lokaler Benutzerkonten in Linux.
# 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.
aus# getent shadow | grep -Po '^[^:]*(?=:.?:)'
Oder,
# getent shadow | grep '^[^:]*:.\?:' | cut -d: -f1
Suchen Sie ein bestimmtes passwortloses Benutzerkonto
Die obigen Befehle listen alle lokalen sowie Systemkonten auf, die kein Passwort haben. Sie können den Passwortstatus eines bestimmten Benutzerkontos auch mit passwd
überprüfen Befehl mit -S
Flagge.
# passwd -S ostechnix
Beispielausgabe:
ostechnix NP 2022-04-07 0 99999 7 -1 (Empty password.)
Das passwd
Befehle 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 hat ein verwendbares Passwort.
Vorsicht: In Debian-basierten Systemen wird der Passwortstatus als L bezeichnet , N , P bzw..
Benutzerkennwort in Linux festlegen
Sie können sich als passwortloser Benutzer anmelden, das ist völlig in Ordnung. Es wird jedoch nicht empfohlen! Sie müssen ein sicheres Passwort mit mindestens 8 Zeichen festlegen, einschließlich Großbuchstaben, Kleinbuchstaben, Sonderzeichen und einer Zahl.
Um ein Passwort für ein Benutzerkonto in Linux festzulegen, verwenden Sie passwd
Befehl als root
Benutzer wie unten.
Als Root-Benutzer:
# passwd ostechnix
Ersetzen Sie ostechnix durch Ihren eigenen Benutzernamen.
Überprüfen Sie nun den Passwortstatus des Benutzerkontos mit passwd
Befehl:
# passwd -S ostechnix
Beispielausgabe:
ostechnix PS 2022-04-07 0 99999 7 -1 (Password set, SHA512 crypt.)
Benutzerkonten unter Linux sperren
Manchmal möchten Sie die Benutzerkonten einfach mit leeren Passwörtern sperren. Suchen Sie in diesem Fall zuerst die Benutzer mit leeren Passwörtern wie oben beschrieben und sperren Sie sie mit passwd
Befehl mit -l
als root
kennzeichnen 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 am System anmelden.
Sie können auch den usermod
verwenden Befehl mit -L
(Großbuchstabe L) Flag, um einen Benutzer zu sperren.
# usermod -L ostechnix
Benutzerkonten unter Linux entsperren
Um die passwortlosen Benutzer in Linux zu entsperren, verwenden Sie entweder passwd
Befehl oder usermod
Befehl mit -p
als root
Benutzer.
# passwd ostechnix
Geben Sie das Passwort zweimal ein, um das Passwort zu entsperren.
Entsperren von Benutzern mit leerem Passwort mit usermod
Befehl nicht möglich ist, sollten Sie mit usermod -p
ein Passwort setzen um das Passwort des Benutzers zu entsperren.
# usermod -p <password-here> ostechnix
Schlussfolgerung
In diesem Tutorial haben wir erklärt, was eine Shadow-Passwortdatei ist und welchen Zweck diese Datei in Linux hat. Dann haben wir über verschiedene Befehle diskutiert, um alle Benutzerkonten zu finden, die kein Passwort in Linux haben. Schließlich haben wir gelernt, wie man ein Passwort für einen Benutzer festlegt und wie man die Benutzer in Linux sperrt und entsperrt.