Welcher Codesatz ist / etc / passwd in gespeichert? Kann es UTF-8 sein? Welche Grenzen sind auf Benutzernamen platziert?

StackOverflow https://stackoverflow.com/questions/1412193

Frage

Auf einem modernen Unix oder Linux-System, wie können Sie sagen, welcher Code in die /etc/passwd Datei speichert Benutzernamen gesetzt? Dürfen Benutzernamen akzentuierte Zeichen enthalten (aus dem Bereich 0x80..0xFF in, sagen wir, ISO 8859-1 oder 8859-15)? Kann die /etc/passwd Datei UTF-8 enthalten? Können Sie sagen, dass es UTF-8 enthält? Was ist mit dem Klartext-Passwörter, bevor sie verschlüsselt werden oder gehasht?

Klar, wenn die Benutzernamen und andere Daten werden an den 0x00..0x7F Bereich begrenzt (und schließt 0x00 sowieso) ist, dann gibt es keinen Unterschied zwischen den UTF-8, 8859-1 oder 8859-15; die Zeichen vorhanden sind, um das gleiche alle verschlüsseln.

Auch ich bin mit /etc/passwd (manchmal als einen Verzeichnisdienst) als Abkürzung für etwas entlang der Linien von „der Benutzeridentifikation und Authentifizierungsdatenbank auf einem Unix-basierten Computern, in der Regel über PAM zugegriffen und manchmal auf anderen Maschinen gehostet ganz aus dem lokalen ein, aber manchmal noch tatsächlich eine Datei auf der lokalen Festplatte, üblicherweise genannt /etc/passwd, die oft von /etc/shadow unterstützt“. Ich bin auch, dass die entsprechenden Fragen über die Gruppendatenbank unter der Annahme (oft die /etc/group-Datei) haben die gleiche Antwort.

War es hilfreich?

Lösung

Es ist alles ASCII. Aber das Passwort selbst wird nie gespeichert - nur die Ergebnisse des Einweg-Hash. Wenn Sie sich fragen, welche Zeichen in das Passwort selbst sein kann, hängt es von der locale, die die Zeichen werden beschränken Ihr Endgerät in der Lage ist, zu behandeln. Siehe "Mann locale"

Von der BSD-man-Seite:

"/ etc / passwd ASCII-Passwort-Datei ..."

Wie für Benutzername, kann ich Ihnen sagen, dass Solaris unterstützt nur ASCII. Ich kann nicht für andere Unix-en sprechen.

"Nicht jedes Objekt in Solaris 2 und Solaris 7can Namen beliebiger Zeichen zusammengesetzt hat. Die Namen der folgenden Objekte müssen aus ASCII-Zeichen zusammengesetzt sein:

* User names, group name, and passwords
* System name ...

"

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top