Passwd, modifier passwd via script shell

Résolu/Fermé
Wssef Messages postés 2 Date d'inscription jeudi 5 octobre 2006 Statut Membre Dernière intervention 6 octobre 2006 - 5 oct. 2006 à 17:15
 Greg - 5 juin 2013 à 16:29
Bonjour,

En utilisant les droits root, je cherche un moyen pour modifier un mot de passe d'une manière automatique en utilisant un script shell

Merci pour votre aide

7 réponses

La commande suivante fonctionne sur AIX5.3 :

echo "$USERNAME:$USERNAME"|/usr/bin/chpasswd

L'utilisateur doit changer son password à la 1ere connexion. Pour contourner cela utiliser chpasswd -f NOCHECK
3
pwdadm -c $USER contourne très bien le problème aussi
0
Pour remplacer le mot de passe de l'utilisateur toto via un script on peut utiliser çà aussi

echo 'echo "toto:monMotDePasse" | chpasswd
2
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
5 oct. 2006 à 17:27
Salut,

En utilisant l'option "--stdin" de "passwd", tu peux changer le mot de passe de tes users de la façon suivante (on attribue le mot de passe "tata" à l'utilisateur toto) :
echo -e "tata\ntata" | (passwd --stdin toto)
En espérant que ce soit ce que tu voulais ;-))
0
Merci pour votre réponse,

J'ai testé votre commande sur un environement LINUX, la commande s'execute avec succès mais je n'arrive pas a me connecter avec le mot de passe attribué à l'utilisateur "toto", ni par le nouveau mot de passe ni par l'ancien. Sur un environement AIX (5.4), la commande ne passe pas, je reçois l'erreur suivante :

dev1:/ >echo -e "tata\ntata" | (passwd --stdin toto)
passwd: Option non reconnue : -
Syntaxe : passwd [-R module_chargement] [ -f | -s | -a ] [nom_utilisateur]
o¨ :
-f modifie les informations finger
-s modifie le shell de connexion.
-a modifie le mot de passe dans tous les modules.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
6 oct. 2006 à 11:55
Re-

Bon alors 2 ou 3 choses...

D'abord, est-ce que l'$USER toto existe ? (question c*n, mais c'est toujours les choses les plus évidentes qui fichent le boxon ;-)) )

Ensuite en ce qui concerne la commande "echo", couplée avec le paramètre "-e" c'est la commande externe (qui se trouve dans "/bin/echo") et non la commande interne du "bash" (echo).
Il se peut que sous AIX cette commande (/bin/echo) n'existe pas, d'où le message d'erreur.

Pour finir chez moi, le test avec l'$USER "toto" et le changement de mot de passe s'est effectué sans soucis ;-))
Test sur Mandriva 2006.
0
Wssef Messages postés 2 Date d'inscription jeudi 5 octobre 2006 Statut Membre Dernière intervention 6 octobre 2006
6 oct. 2006 à 13:40
j'ai trouvé une méthode plus simple :

contenu script test:
********** test.sh *********
#! bin/sh
echo "toto:tata" > ./pass.tmp
echo `cat ./pass.tmp | chpasswd`
echo `pwdadm -f NOCHECK $login`
*****************************

l'utilisateur toto va avoir tata comme mot de passe et n'aura pas besoin de re-saisir un nouveau mot de passe au moment de sa nouvelle connexion :)
0
survietamine
23 mars 2011 à 09:08
salut, quel est l'intérêt de passer par un fichier ?
0
Bonjour,

Je débute sous unix, je cherche un script qui permet de changer le mot de passe de root sur plusieurs serveurs via une connexion ssh.

type de script :
1 - Saissir l'utilisateur qui doit changer de mot de passe
2 - Saissir son mot de passe
3 - changement du mot de passe de l'utilisateur (point N°1) sur le serveur N°1
4 - changement du mot de passe de l'utilisateur (point N°1) sur le serveur N°2
5 - changement du mot de passe de l'utilisateur (point N°1) sur le serveur N°3
6 - changement du mot de passe de l'utilisateur (point N°1) sur le serveur N°4

Merci d'avance de vos conseils et de vos réponses.
-2