Tatsächlich wurde / etc / shadow erstellt, um eine Abkehr von einer öffentlich lesbaren Liste von Benutzernamen und Kennwörtern zu ermöglichen.
Bleib dran, dies wird eine kleine Geschichtsstunde sein, bevor wir zur eigentlichen Antwort kommen. Wenn Sie sich nicht für die Geschichte interessieren, scrollen Sie einfach ein wenig nach unten.
In früheren Zeiten behielten Unix-ähnliche Betriebssysteme, einschließlich Linux, die Passwörter im Allgemeinen in / etc / passwd. Diese Datei war und ist weltweit lesbar, da sie Informationen enthält, die eine Zuordnung beispielsweise zwischen numerischen Benutzer-IDs und Benutzernamen ermöglichen. Diese Informationen sind selbst für normale Benutzer zu absolut legitimen Zwecken äußerst nützlich, sodass die Lesbarkeit der Dateiwelt für die Benutzerfreundlichkeit von großem Vorteil war.
Schon damals erkannten die Leute, dass es eine schlechte Idee war, die Passwörter im Klartext in einer Datei an einem bekannten Ort zu haben, den jeder, der sich einloggen konnte, frei lesen konnte. In gewisser Weise wurden Passwörter gehasht. Das ist der alte "Krypta" -Kennwort-Hashing-Mechanismus, der auf modernen Systemen so gut wie nie verwendet wird, aber häufig für Legacy-Zwecke unterstützt wird.
Schauen Sie sich / etc / passwd auf Ihrem System an. Sehen Sie das zweite Feld, das x
überall steht? Früher hatte es das Hash-Passwort für das betreffende Konto.
Das Problem war, dass die Leute / etc / passwd herunterladen oder gar nicht herunterladen konnten und daran arbeiteten, die Passwörter zu knacken. Dies war kein großes Problem, obwohl Computer nicht besonders leistungsfähig waren (Clifford Stoll in The Cuckoo's Egg gibt, wie ich mich erinnere, die Zeit, um Mitte der 1980er Jahre ein Kennwort auf einem IBM-PC-Klassensystem zu hacken, etwa eine Sekunde ), aber es wurde ein Problem, da die Verarbeitungsleistung zunahm. Irgendwann wurde es mit einer anständigen Wortliste zu einfach, diese Passwörter zu knacken. Aus technischen Gründen konnte dieses Schema auch keine Kennwörter unterstützen, die länger als acht Byte sind.
Zwei Dinge wurden getan, um dies zu lösen:
- Umstieg auf stärkere Hash-Funktionen. Die alte Krypta () hatte ihre Nutzungsdauer überlebt, und es wurden modernere Schemata entwickelt, die sowohl zukunftssicher als auch rechenstärker waren.
- Verschieben Sie die gehashten Passwörter in eine Datei, die von niemandem gelesen werden konnte. Auf diese Weise gab es für einen Angreifer ein weiteres Hindernis, auf die Hash-Werte zuzugreifen, selbst wenn sich herausstellte, dass eine Passwort-Hash-Funktion schwächer als erwartet war oder wenn jemand anfangs ein schwaches Passwort hatte. Es war nicht mehr für alle frei.
Diese Datei ist / etc / shadow.
Die Software, die mit / etc / shadow zusammenarbeitet, ist in der Regel sehr klein, stark fokussiert und wird aufgrund des potenziellen Problems bei Überprüfungen häufig genauer untersucht. Es wird auch mit speziellen Berechtigungen ausgeführt, mit denen es / etc / shadow lesen und ändern kann, während normale Benutzer diese Datei nicht einsehen können.
Nun haben Sie es geschafft: Die Berechtigungen für / etc / shadow sind restriktiv (obwohl, wie bereits erwähnt, nicht ganz so restriktiv, wie Sie angegeben haben), da der gesamte Zweck dieser Datei darin besteht, den Zugriff auf vertrauliche Daten einzuschränken.
Ein Passwort-Hash sollte sicher sein, aber wenn Ihr Passwort in den Top 500-Passwörtern der Internetlisten aufgeführt ist, kann jeder, der Zugriff auf den Hash hat, das Passwort schnell finden. Das Schützen des Hashs verhindert diesen einfachen Angriff und legt die Messlatte für einen erfolgreichen Angriff höher, vom einfachen Spähen bis hin zum Erfordernis, dass einer entweder bereits ein Systemadministrator auf dem Host ist oder zuerst einen Eskalationsangriff durchläuft. Insbesondere auf einem ordnungsgemäß verwalteten Mehrbenutzersystem ist beides erheblich schwieriger als das Anzeigen einer weltweit lesbaren Datei.
/etc/shadow
sind600
?