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?
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
Vous devez vous connecter pour publier un commentaire.
Si vous souhaitez rediriger les deux stdout et sterr:
qui est l'équivalent de
qui signifie "rediriger stdout vers /dev/null et puis rediriger (en double) stderr vers stdout". De cette façon, vous rediriger les deux stdout et stderr de nul ... mais c'est peut-être pas assez (il sera dans ce cas je crois). Mais en théorie, le programme peut écrire directement à la borne. Par exemple ce script
Pour se débarrasser même de cette sortie, vous devez forcer le programme à exécuter dans le pseudo-terminal, par exemple http://empty.sourceforge.net/ . Mais c'est juste une note de côté &> /dev/null fonctionnera très bien.
OriginalL'auteur Neuron
Vous pouvez également le faire de cette façon:
de sorte que le mot de passe est déjà codé dans le script.
OriginalL'auteur Florian Fida
Cela a fonctionné pour moi
Avis:
--stdin
fonctionne pour l'utilisateur root uniquementOriginalL'auteur Davide Berra