Risposte:
TL; DR: No, la password viene memorizzata come hash che (in generale) non può essere recuperato.
Per impostazione predefinita, Linux non memorizza password in chiaro ovunque . Sono sottoposti a hash o altrimenti crittografati attraverso una varietà di algoritmi. Quindi, in generale, no, questo non è possibile con i dati memorizzati.
Se le password sono memorizzate in un luogo diverso dal /etc/passwd
database, è possibile che vengano archiviate in modo da consentire ciò. htpasswd
i file possono contenere password criptate in modo logico e altre applicazioni possono archiviare hash più deboli o password in chiaro per vari motivi (in genere errati).
Inoltre, i file di configurazione dell'utente possono contenere password non crittografate o password debolmente protette per vari motivi: fetchmail che acquisisce contenuto da un altro servizio .netrc
o semplici cose automatizzate possono includere la password.
Se le password sono hash o crittografate con un algoritmo più vecchio e debole (3DES, MD5), sarebbe possibile elaborare in modo abbastanza efficiente / economico quale fosse la password, anche se attaccando i dati piuttosto che semplicemente invertire la trasformazione. (ad es .: cose come http://project-rainbowcrack.com/ o http://www.openwall.com/john/ )
Dato che sei root è anche possibile attaccare la password dell'utente ad un altro livello - sostituire il binario di accesso, o sudo, o parte di PAM, ecc. Con qualcosa che catturerà la password quando viene inserita.
Quindi, in particolare, no, ma in generale avere l'accesso come root rende più facile ottenere i dettagli degli utenti attraverso vari canali laterali.
/etc/shadow
, funzione di hash crittografico , il sale e la password di cracking
Contrariamente ad altre risposte qui, direi che la risposta semplice, a questa e molte altre domande che terminano con "se hai radice" è SÌ.
Fondamentalmente, root può fare qualsiasi cosa sulla macchina che il sistema stesso possa fare. Il sistema può accettare la tua password, quindi root può accettare la tua password, o la sua al posto della tua, con sufficiente sforzo. Ancora più importante, può semplicemente cambiare la password o DIVENTARE.
In particolare, le password sono generalmente crittografate. Di solito si tratta di una sorta di cosiddetto algoritmo "unidirezionale", che genera un numero (un hash) che può essere utilizzato per controllare la password, ma generalmente per non invertire il numero e recuperare nuovamente la password. Quindi, non si tratta solo di leggere un file per ottenere la password di qualcuno.
Detto questo, PUOI leggere la cronologia della shell e la cronologia degli accessi, dove molto probabilmente hanno digitato la loro password anziché il loro nome utente a un certo punto, o l'hanno digitata in una shell anziché al prompt della password. In tal caso, DOVREBBE essere un testo semplice. Questo è inquietantemente comune sui terminali testuali, senza soluzioni valide che io conosca.
Tuttavia, anche mettendo da parte questo problema, la crittografia "unidirezionale" non è in realtà un modo. Ci sono molti strumenti intorno che passeranno attraverso molte combinazioni di passphrase, crittografandole con lo stesso processo a senso unico, fino a quando non trovi quello che corrisponde. Quindi conoscono la password che otterrà l'accesso (anche se come root, hanno già accesso, su quella macchina).
Peggio ancora, ci sono tabelle arcobaleno, che sono risposte precompilate al processo sopra: le persone hanno già generato la password originale che proviene dalla password crittografata fornita. Usando questi, è una ricerca semplice - non sono necessari tentativi di cracking che richiedono tempo.
Ancora una volta, l'accesso a livello di root è LA cosa da proteggere. Con ciò compromesso, l'intera macchina e tutto ciò che vi è compromesso. È tempo di ricominciare, anche informando tutti i tuoi utenti che la tua attività non può più essere considerata attendibile per proteggere la loro privacy. E, sì, ciò potrebbe significare uscire dal mercato.
In tal caso, root
è possibile eseguire un cracker di password /etc/shadow
(presupponendo password locali e non LDAP o Kerberos, ecc.). Ciò potrebbe non essere efficace se scelgono password valide e il sistema è configurato per utilizzare l'hash delle password complesse. Ma le password di sistema non sono memorizzate in testo normale; le password non sono direttamente disponibili nemmeno a root
.
Tutte le password sono archiviate nel /etc/shadow
file. È possibile aprire questo file utilizzando l'accesso come root e vedere la hash value
password per ciascun utente (anche l'utente root).
A meno che non si disponga di alcun tipo di software di decodifica della password, non è possibile riconvertire questi valori di hash in testo normale.
Tuttavia, se hai accesso all'utente root, puoi modificare la password di qualsiasi utente normale usando il comando seguente e accedere al suo account.
root@localhost$ passwd pradeep
Questo ti chiederà il nuovo passwd che desideri impostare per l'utente pradeep
. In questo modo puoi cambiare passwd per pradeep.
Ora puoi accedere dal suo account tramite:
root@localhost$ su pradeep
Ciò comporterà il passaggio all'utente di pradeep e otterrai un terminale come questo:
pradeep@localhost$