leggere le parole sagge da:
cito:
Niente y si può fare in bash può forse funzionare. passwd (1) non legge dallo standard input. Questo è intenzionale. È per la tua protezione Le password non sono mai state pensate per essere inserite nei programmi o generate dai programmi. Dovevano essere inseriti solo dalle dita di un vero essere umano, con un cervello funzionale, e mai, mai scritti da nessuna parte.
Tuttavia, otteniamo orde di utenti che chiedono come possono aggirare i 35 anni di sicurezza di Unix.
Si va avanti a spiegare come è possibile impostare la password di shadow(5)
correttamente, e vi mostra il gnu- I-solo-care-about-sicurezza-se-it-Indifferente-make-me-pensare -troppo-molto -way of abusing passwd(1)
.
Infine, se avete intenzione di utilizzare la sciocca passwd GNU (1) estensione --stdin
, non passare la password metterlo sulla riga di comando.
echo $mypassword | passwd --stdin # Eternal Sin.
echo "$mypassword" | passwd --stdin # Eternal Sin, but at least you remembered to quote your PE.
passwd --stdin <<< "$mypassword" # A little less insecure, still pretty insecure, though.
passwd --stdin < "passwordfile" # With a password file that was created with a secure `umask(1)`, a little bit secure.
L'ultima è la migliore che si può fare con GNU passwd
. Anche se ancora non lo consiglierei.
Inserire la password sulla riga di comando significa che chiunque con il minimo suggerimento di accesso alla casella può controllare ps
o simili e rubare la password. Anche se pensi che la tua scatola sia sicura; è qualcosa che si dovrebbe davvero prendere l'abitudine di evitare a tutti i costi (sì, anche il costo di fare un po 'più di difficoltà per ottenere il lavoro fatto).
Simile domanda a: http://askubuntu.com/questions/94060/run-adduser-non-interactively/667842#667842 – ThorSummoner