Nelle vecchie versioni di UNIX le informazioni relative agli account venivano registrate in un file delle password
che tutti gli utenti potevano leggere ma che solo root poteva modificare.
Le password all'interno del file sono cifrate usando un algoritmo di cifratura:
crypt(). La password viene
così trasformata in una stringa di caratteri in codice che non può più essere tradotta nella stringa iniziale.
Quando viene effettuato un login la password immessa viene codificata e confrontata con quella esistente nel file delle
password;
se sono uguali viene autorizzato l'accesso al sistema. Con questo metodo, pur possedendo i privilegi di root,
non si è in grado di risalire alla password di un utente. In effetti nel sistema esiste solo la password cifrata mentre
quella non cifrata esiste solo nel breve istante durante il quale viene digitata.
Nei sistemi Linux il file delle password é contenuto nella directory /etc/ ed é chiamato passwd.
Il file contiene righe del tipo:
root:Fh092cyxeLOFw:0:0:root:/root:/bin/bash
elviod:Ga2dkwt7KaiLs:504:100::/home/elviod:/bin/bash
libsca:HbxvjHo03x4js:501:100::/home/libsca:/bin/bash
robmer:HfXZJRO0xtL4s:505:100::/home/robmer:/bin/bash
vivper:EjhZOjTSY5tDk:506:100::/home/vivper:/bin/bash
Ogni riga corrisponde ad un singolo account e ciascuna di esse é costituita da sette
campi separati da ":". Tali campi indicano il nome dell'utente, la password cifrata,
l'ID dell'utente, l'ID del gruppo, la descrizione, la home directory e la shell di default.