Unterschied zwischen ! vs !! vs * in / etc / shadow

38

Das zweite Feld in der Linux- /etc/shadowDatei repräsentiert ein Passwort. Was wir jedoch gesehen haben, ist Folgendes:

  1. Einige der Kennwortfelder enthalten möglicherweise einen einzelnen Ausruf

    <account>:!:.....
    
  2. Einige der Kennwortfelder haben möglicherweise einen doppelten Ausruf

    <account>:!!:.....
    
  3. Einige der Kennwortfelder haben möglicherweise ein Sternchen

    <account>:*:.....
    

Durch einige Recherchen im Internet und durch diesen Thread kann ich verstehen, dass *Passwort nie eingerichtet, !gesperrt bedeutet.

Kann jemand erklären, was Double Exclamation ( !!) bedeutet? und wie unterscheidet es sich von ( !)?

JavaTec
quelle
Welche Distribution benutzt du?
muru
Hallo Muru, bin neu in Unix und versuche, ein Skript zu erstellen, das auf RHEL 6.6 und HP-UX B.11.23
JavaTec
3
"Standardmäßig enthalten Konten, bei denen keine Anmeldung vorgesehen ist (z. B. bin, daemon, sshd), nur einen einzigen Stern im Kennwortfeld. Beachten Sie, dass '*' nichts Besonderes ist, sondern nur eines von vielen Zeichen das kann in einem gültigen verschlüsselten Passwort nicht vorkommen (siehe crypt (3)). " - OpenBSD-Manpage für passwd (5) . Ich würde erwarten ! oder !! technisch gesehen nicht anders, wenn es darum geht, ob es sich um eine gültige passwd-Datei handelt oder um Anmeldungen. Einige Tools haben jedoch möglicherweise spezielle Unterstützung.
TOOGAM
1
Verwenden Sie das Dokument der BSDs nicht als Referenz. Ihre Kontendatenbank behandelt die Dinge anders und hat nicht einmal eine /etc/shadowDatei. Fügen Sie auch keine Antworten in Kommentare ein . ☺
JdeBP

Antworten:

31

Beide "!" und "!!" Wenn Sie im Kennwortfeld vorhanden sind, wird ein Konto gesperrt.

Wie im folgenden Dokument zu lesen ist, "!!" Bei einem Kontoeintrag im Schatten wurde das Konto eines Benutzers angelegt, aber noch kein Passwort vergeben. Bis ein Sysadmin ein anfängliches Kennwort erteilt, ist es standardmäßig gesperrt.

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/4/html/System_Administration_Guide/s2-redhat-config-users-process.html

Rui F Ribeiro
quelle
4
Dies vielleicht wahr auf Red Hat - Systemen, aber nicht unbedingt an anderer Stelle - auf Ubuntu oder Arch Linux, einem neu erstellten Konto ohne Passwort hat nach wie vor nur !, nicht !!.
muru
2
Richtig, dass ich noch nie ein "!!" in einem Debian-System. Ich würde vermuten, dass das OP ein RH-basiertes System oder SuSE verwendet.
Rui F Ribeiro
Vielen Dank für Ihre schnellen Antworten. Würde die obige Erklärung von Rui - auch für ein HP-UX gut sein?
JavaTec
4
@JavaTec Nicht unbedingt: Ich denke, dass alle Geräte, die ein /etc/shadowhaben, dasselbe Feld haben, aber wie das Passwortfeld Nicht-Passwort-Informationen speichert, variiert. Überprüfen Sie die HP-UX-Dokumentation, beginnend mit der shadowManpage.
Gilles 'SO- hör auf böse zu sein'
1
HP-UX hatte /etc/shadowbis vor relativ kurzer Zeit noch keine : Vor HP-UX 11.11 waren die Optionen entweder klassisch schattenlos /etc/passwdoder "Trusted Computing Base", mit denen die Kennwort-Hashes und andere Kontoinformationen jedes Benutzers in einzelnen Dateien mit dem Namen gespeichert wurden /tcb/files/auth/<initial>/<username>, die nur von root gelesen werden können. In HP-UX 11.11, /etc/shadowwurde als eingeführt optional , in 11,23 war es eine Option in dem Basis - Betriebssystem, und in 11,31 wurde die TCB schließlich veraltet.
TelcoM
10

Es kann auch erwähnenswert sein, <account>::.....dass kein Passwort erforderlich ist (leeres Passwort).

Wenn Sie einen Nur-SSH-Benutzer erstellen, können Sie <account>::0:0:99999:7:::festlegen, dass der Benutzer bei der ersten Anmeldung sein Kennwort (dh das Kennwort, das er für sudo verwendet) festlegt.

CoolAJ86
quelle
8
Hüte dich davor. Ein leeres Feld bedeutet, dass kein Kennwort vorhanden ist. Sie müssen lediglich die EINGABETASTE drücken, um sich mindestens in der Konsole anzumelden.
Rui F Ribeiro
In man shadowBezug auf das verschlüsselte Kennwort: "Dieses Feld kann leer sein. In diesem Fall sind keine Kennwörter erforderlich, um sich als der angegebene Anmeldename zu authentifizieren." <- Wenn Sie dieses Feld leer lassen, erhalten Sie ein offenes Konto. Dies sollte in der Tat vermieden werden!
Laas
Beachten Sie, dass viele SSH-Implementierungen standardmäßig die Anmeldung auf Konten mit sudo /usr/sbin/sshd -T| grep emptyNullkennwörtern blockieren : "allowemptypasswords no"
Brian Huntley,