Warum ist / etc / passwd öffentlich zum Lesen zugänglich?

12

Gibt es einen Grund, warum / etc / passwd weltweit lesbar sein sollte? Es ist nicht wie bei Passwort-Hashes, die nicht offen gelegt werden sollten, ich möchte nur wissen, warum.

Gänseblümchen
quelle
1
Ich denke, wenn Ihre Shell weiß, ~userdass sie in das Home-Verzeichnis des Benutzers expandiert , sieht sie tatsächlich danach /etc/passwd, also ist es schön, dass sie lesbar ist, anstatt allen Shells erhöhte Rechte zu erteilen.
Ulrich Schwarz
Das Erweitern von "~" ist eine Funktion der Variablen "$ HOME". Setzen Sie "$ HOME" auf "/ var / tmp". Wenn Sie dann "cd ~" eingeben, wird es in "/ var / tmp" geändert.
Saurabh Hirani

Antworten:

14

/etc/passwdwird manchmal als Benutzerdatenbank bezeichnet. Das sollte uns einen Hinweis geben, warum es für alle lesbar sein muss. Jede Dienstprogramm , dass Prüft Dateimetadaten muss in der Lage sein zu lesen /etc/passwd(und /etc/group) um in der Lage zu sein , die numerische IDs vom Kernel und seine Subsysteme auf die menschenfreundlichen Namen verwendet , um zu beheben , dass wir verlassen. Tools, die Ihr Home-Verzeichnis finden müssen (E-Mail-Zustellungsagenten usw.) /etc/passwd, inetdurchsuchen diese Informationen und Miniserver fingerdsuchen Ihre Details in /etc/passwd.

Wie bereits an anderer Stelle erwähnt, enthält die Datei keine besonders sensiblen Daten, da moderne Systeme die Kennwort-Hashes in eine Shadow-Kennwort-Datei schreiben, die nur von root gelesen werden kann.

D_Bye
quelle
6
Ist es dann aus historischen Gründen so, dass es aufgerufen wird, passwdwenn dieser Name tatsächlich nicht widerspiegelt, was in der Datei enthalten ist?
Emanuel Berg
8
Ja, ich denke schon. In sehr frühen Versionen von UNIX wurden die Passwörter tatsächlich in /etc/passwd(zunächst unverschlüsselt!) Gespeichert . Als Kennwort-Hashes in eine Schattendatei verschoben wurden, gab es bereits viele Dienstprogramme, die sich auf andere Informationen stützten. /etc/passwdDer Name blieb also erhalten.
D_Bye
7

/etc/passwdenthält keine Passwort-Hashes (also kein großes Problem). /etc/shadowenthält Passwort-Hashes und kann nur von root (& shadow group) gelesen werden

Manula Waidyanatha
quelle
1
Bei einigen Setups befinden sich die Passwörter nicht einmal in dieser Datei, da sie sich in LDAP oder einem anderen gesicherten Backend befinden!
Tim