I sitemi Unix sono sistemi multi-utenti. Ogni utente abilitato nel sistema ha a disposizione un certo numero di risorse (un certo spazio disco, la possibilità di eseguire certi programmi ecc.), dette genericamente account. Ogni utente nel sistema è identificato da:
Un utente può accedere al sistema tramite la procedura di login. Per esempio, quando l'utente accede a un terminale collegato al sistema, si presenta una schermata in cui viene richiesto di inserire il login name e successivamente la password. Se il nome e la password inserite corrispondono a uno degli account registrati nel sistema, allora viene eseguito il processo di shell che si posiziona sulla directory iniziale. A questo punto, l'utente si trova con un prompt tramite il quale è possibile lanciare dei comandi.
Le informazioni elencate precedentemente (esclusa la password) si trovano in un file chiamato /etc/passwd, che può essere acceduto in lettura da tutti e in scrittura solo dal root. Un esempio di file passwd è mostrato di seguito: ogni linea contiene le informazioni per ogni utente separate dal carattere ':'. Gli unici utenti ``veri'' nell'esempio sono root, lipari e elena.
Nei vecchi sistemi le password degli utenti venivano anch'esse memorizzate nel file /etc/passwd criptate tramite un algoritmo unidirezionale. In questo modo, quando l'utente inseriva la password, la procedura di login applicava l'algoritmo ricavando una stringa che confrontava con il contenuto il campo opportuno del file /etc/passwd, mentre era impossibile dalla stringa criptata risalire alla password originale.
Però, un eventuale hacker, nell'ottica di scoprire la password di alcuni utenti, poteva comunque provare ad applicare l'algoritmo per criptare (che è pubblico) su una serie di password possibili, e confrontare i risultati con il contenuto del file. Con la potenza dei moderni computer era solo questione di tempo prima di riuscire a ricavare la password del root.
Quindi, per maggior sicurezza, nei sistemi moderni le password e alcune altre informazioni sono contenute nel file /etc/shadow (in alcuni sistemi chiamato master.passwd) che può essere letto o scritto solo da root, e quindi l'attacco descritto sopra non è possibile.