Eine Beispieldatei /etc/group
enthält die folgenden Einträge:
root:*:0:
adm:!:4:logcheck
antoine:x:1000:
Die Manpages, die ich gelesen habe (Debian & OSX), besagen, dass das zweite Feld das Speichern eines Gruppenpassworts ist. Da sie selten verwendet werden, wird in der Regel ein Stern *
oder ein Sternchen x
darin platziert, anstatt es leer zu lassen.
Die shadow
Manpage sagt auch, dass dieses zweite Feld das Ergebnis der crypt
Funktion speichern soll . Wenn ein ungültiges Ergebnis gespeichert wird (z. B. *
oder !
), kann das Kennwort nicht als Authentifizierungsmethode verwendet werden.
Gilt das auch für die group
Datei? Warum habe ich 3 verschiedene Zeichen in meiner group
Datei, die alle die gleiche Bedeutung haben? Kann ich sicher alles auf ändern *
?
*
?!
Verwendung für eine einzelne Gruppe auf einem einzelnen Server von 10+, die ich derzeit verwalte. Zur Vereinfachung einiger Überprüfungsskripte würde es Dinge klären, wenn immer das gleiche Zeichen vorhanden ist. Na ja, wenn es tatsächlich dasselbe bedeutet, natürlich.Antworten:
Sie denken , dass das
!
,*
oderx
hat eine besondere Bedeutung hier, und sorgen sich daher , dass es vielleicht einige Unterscheidung unter ihnen sein.Tatsache ist, dass diese Charaktere einfach deshalb ausgewählt werden, weil sie sich zumindest für westliche Augen von anderen abheben. Diese Zeichen weisen auf einen fehlenden Wert, einen Ausnahmefall oder eine Warnung hin. Sie könnten
boogabooga
hier setzen und genau den gleichen Effekt haben.Dies liegt an der Art und Weise, wie Kennwörter auf Unix-Systemen gehandhabt werden. Wenn das System einen Passworteintrag erhält, wird dieser gehasht und mit dem gespeicherten Hash verglichen. Daher ist hier nur wichtig, dass Sie ein Zeichen oder eine Zeichenfolge verwenden, die möglicherweise kein gültiger Kennwort-Hash sein kann. (Aus offensichtlichen Gründen darf auch kein Doppelpunkt enthalten sein.)
Obwohl es aus Sicht des Kernbetriebssystems keinen Unterschied zwischen diesen Zeichen gibt, gibt es einige Konventionen:
Wenn das Linux-
pwconv(8)
Programm erkenntx
, bedeutet dies "Ich habe diesen öffentlichen Passwort-Hash bereits in die Shadow-Passwort-Datei verschoben".Dies ist in der Praxis kein wichtiger Fall, da die Tage der Umstellung auf (oder, Gott helfe Ihnen, von ) Shadow-Passwörtern hinter uns liegen.
Wenn Sie einen Benutzer mit
usermod -L
oderpasswd -l
sperren,!
hat dies eine besondere Bedeutung,/etc/shadow
da dies die Konvention für "Diesen Hash brechen, damit er nicht mehr übereinstimmt" ist.Das Hinzufügen eines anderen Zeichens zu dem gespeicherten Hash würde es genauso gut zerstören. Diese Konvention nur die Verletzung verhindert
usermod -U
oderpasswd -u
aus Entriegeln des Benutzers Login. Genauso wie Sie es von Hand gesperrt haben, indem Sie ein falsches Zeichen hinzugefügt haben, können Sie es von Hand entsperren, indem Sie es entfernen.All dies ist jedoch nur eine Kleinigkeit in Bezug auf diese Frage. Es gibt kein
groupmod -L
odergpasswd -l
, daher keine!
Konvention in/etc/group
.Mehr Lappalien: wenn Sie sind auf Schloss Benutzerkonten von Hand, sollten Sie von der wegbleiben
[A-Za-z0-9/\]
Satz, da diese Rechts Zeichen für die Hash sind. Das ist ein Grundusermod
Verwendungen!
hier stattx
.Ich sehe nichts falsches darin, alle Ihre
/etc/group
Passwortfelder zu normalisieren , wenn Sie sich dadurch besser fühlen. Auf diese Weise sagen Sie bereits, dass Sie diese Dateien gerne von Hand hacken, sodass Sie wahrscheinlich ohnehin nicht die Tools verwenden, die für die Unterscheidung von Bedeutung sind. Unabhängig davon wird sich die Änderung nicht auf den täglichen Systembetrieb auswirken.quelle
getpwent(3)
und Freunde sein. Perl hat Wrapper für diese in seiner Standardbibliothek, ebenso wie jede andere auf Unix-Sysadmin fokussierte Skriptsprache. Wenn Sie eine Sprache ohne solche Wrapper verwenden, ist dies eine gute Ausrede für einen Tausch. :)x
und verwenden*
, um ein "unbenutztes" Passwortfeld zu markieren. Nur neugierig ... Die Manpage sagt, dass das Feld sehr gut leer gelassen werden kann (was im Datenbankfeld NULL heißen kann - insbesondere in Oracle, wo NULL und leere Zeichenfolge identisch sind). Zurück zu / etc / group: Warumx
oder!
oder verwenden*
, anstatt das Feld leer zu lassen? Zwei aufeinanderfolgende Doppelpunkte stehen genauso gut wie diese Zeichen. Nicht wichtig - nur neugierig/etc/shadow
. Ich lehne auch die Vorstellung ab, dass ein Doppelpunkt genauso klar ist. Schnell, wie viele leere Felder gibt es hier::::::
? Wie viele:x:*:!:x:*:
? Die gleiche Anzahl von Doppelpunkten, aber unterschiedliche Antworten, vertraue ich.