Changement linux mot de passe dans un script, tranquillement

Dans le cadre d'essayer de mettre en œuvre une mesure de sécurité dans ma racine de la session ssh, je suis en train de mettre au point une méthode de démarrage d'un script après n secondes de racine de connexion de l'utilisateur, et de changer le mot de passe d'utilisateur et de la déconnexion de l'utilisateur automatiquement.

Je suis coincé à essayer de changer le mot de passe en silence. J'ai le code suivant:

echo -e "new\nnew" | passwd -q

Ce au lieu de changer le mot de passe "tranquillement", comme mentionné dans les pages de manuel, les sorties ceci:

~/php-pastebin-v3 #echo -e "new\nnew" | passwd -q
Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully

qui ne vous aide pas beaucoup.

J'ai essayé de tuyau stdout et stderr, cependant, je pense que j'ai mal compris la tuyauterie.

~/php-pastebin-v3 #echo -e "new\nnew" | passwd -q > /dev/null
Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully

~/php-pastebin-v3 #echo -e "new\nnew" | passwd -q /dev/null 2>&1
passwd: user '/dev/null' does not exist

Quelle est la bonne méthode pour changer le mot de passe via un script, tranquillement?

Essayez echo -e "new\nnew" | passwd -q 2>&1 /dev/null
ça me donne: "mot de passe: l'utilisateur '/dev/null "n'existe pas"
Est-ce vraiment sécurisé ou utiles?
L'idée est que, à moins que le processus qui démarre le script est terminé dans n secondes, l'utilisateur non autorisé est sorti du système, authorized_keys est supprimé, et seul le nouveau mot de passe peut être utilisé pour vous connecter. Il est donc utile. Sur la sécurité..scripts bash ne coûtent pas très sûr, sont-ils? 🙂

OriginalL'auteur Joel G Mathew | 2013-02-22