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.


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.


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


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.