Christian Seiler: Shadow Passwörter

Beitrag lesen

Hallo Mike,

gibt es eine Möglichkeit über PHP (als root User natürlich) an Shadow Passwörter ranzukommen. Sprich eine Passwortabfrage wo die Shadow Passwörter gecheckt werden...

Also: Du kannst die Datei /etc/shadow auslesen, da stehen die Passwörter drin. Das geht (hoffentlich) nur als root. Mit http://de3.php.net/crypt kannst Du prüfen, ob das Passwort in Ordnung ist:

// $passwort ist das vom Benutzer gegebene Passwort
// $shadow_pw ist das in der /etc/shadow vorhandene, gehashte Passwort
if (crypt ($passwort, $shadow_pw) == $shadow_pw) {
  // passwort korrekt
} else {
  // passwort inkorrekt
}

Was Du nicht machen kannst, ist das Original-Passwort einfach aus der Zeichenkette, die in der shadow-Datei steht, zu bekommen, da crypt() eine Einweg-Hash-Funktion darstellt, die nur durch Durchprobieren rückgängig gemacht werden kann. (klar, bei einem hinreichend schwachen Passwort ist dies auch möglich, allerdings kostet das Rechenleistung)

Viele Grüße,
Christian