Come si dovrebbe creare una password crittografata per / etc / shadow?


9

Sto configurando un nuovo account su una scatola Linux per l'accesso al repository Subversion e posso inviare la password al nuovo utente. Tuttavia, penso che ci fosse un'utilità da riga di comando per questo nuovo utente per crittografare la password che gli piace in un formato che posso copiare / incollare direttamente nel file / etc / shadow.

Qual è stato il comando completo che questo nuovo utente deve eseguire sulla console (ad esempio Bash) per creare una password così crittografata?

AGGIORNAMENTO: l'utente non potrà accedere al computer e l'account verrà semplicemente utilizzato per l'accesso svn + ssh: //. Pertanto, l'utente non può modificarlo da solo.


L'utente sta chiedendo di bash scripting, dal momento che ovviamente non lo farà manualmente.
Tim Post

Risposte:


15

l'utente può eseguire sul suo computer qualcosa del tipo:

echo "password"|openssl passwd -1 -stdin

e quindi inviarti l'output.


+1 fa esattamente quello che stai cercando.
Antoine Benkemoun,

Perché quel comando dà un valore diverso ogni volta che lo chiamo?
Egon Willighagen,

2
Il formato dell'output è crittografato $ id $ salt $. ID diversi e salt diversi ti danno una stringa crittografata diversa. L'id è l'algoritmo utilizzato: 0-DES, 1-> MD5, 2a-> Blowfish, 5-> SHA-256, 6-> SHA512
Gonzalo

OK, quindi ho bisogno di capire come attivare un determinato id (che era sempre lo stesso) e salt (che cambiava ad ogni chiamata) ... ha senso.
Egon Willighagen,

2

Il formato della password in ombra può variare. Potresti impostarlo su MD5 o sul buon vecchio DES3 o ... Sei bravo a inviare una password al tuo utente e costringerla a cambiarla al primo accesso ( # chage -d 0 username)


1

Invece di farli crittografare la password e inviarla a te, perché non dire loro di digitare:

passwd

Farà tutto ciò che desideri con l'ulteriore vantaggio di poter modificare le password senza alcun lavoro aggiuntivo per te.

EDIT: Secondo questo , c'è presumibilmente un comando chiamato makepassword che puoi ottenere per Debian / Ubuntu.


Perché ciò richiede che l'utente abbia già effettuato l'accesso. L'OP vuole una soluzione per impostare la password in modo sicuro prima che l'utente acceda per la prima volta.
Daniel Pryden,

1
Sembra che generare una password in modo casuale e farli cambiare quando effettuano l'accesso sia sicuro quanto farli generare una password e aggiungerla manualmente.
Brendan Long,

L'utente non eseguirà mai l'accesso (shell: / bin / false) e consentirà solo l'accesso in lettura / scrittura SVN ...
Egon Willighagen

2
È possibile impostare shell: / usr / bin / passwd: D
Brendan Long,

1
Intendo l'ultimo commento come uno scherzo, ma a quanto pare funzionerà: markmail.org/message/ekuxvnhdagywy4i5
Brendan Long

0

/ etc / passwd e / etc / shadow sono molto facili da tokenizzare con i soliti strumenti da riga di comando (cioè grep, awk, sed, tr, ecc.).

Ciò che diventa interessante è l'attuale campo hash della password in / etc / shadow, il suo prefisso ti dice come la password è stata crittografata. Dall'uomo (5) ombra:

The password field must be filled. The encrypted password consists of 13 to 24 characters from the 64 characters alphabet a thru z, A
thru Z, 0 thru 9, \. and /. Optionally it can start with a "$" character. This means the encrypted password was generated using another
(not DES) algorithm. For example if it starts with "$1$" it means the MD5-based algorithm was used.

Il modo in cui è stato crittografato dipende in gran parte dall'età del sistema operativo installato. È importante prestare particolare attenzione al secondo campo in / etc / shadow.

Dovresti fare ogni sforzo per seguire qualunque hash il sistema stia usando, sia DES, MD5, ecc., Poiché è così facile da rilevare.



0

C'è un modo per generare queste password dalla riga di comando? Sì, con il pacchetto debian makepasswd (ma solo per MD5):

echo "mypasswd" | makepasswd --crypt-md5
$1$r2elYKyB$vUr/Ph.brKTldM2h2k8J5.

Ma questo non funzionerà tramite copia e incolla all'interno di / etc / shadow Per cambiare la password tramite script in alcune distribuzioni di Linux, puoi usare:

echo oracle:mypasswd | chpasswd

o

echo -n mypasswd | passwd --stdin oracle
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.