Rechercher : dans
Par :

Passwd, modifier passwd via script shell

Dernière réponse le 30 jui 2008 à 11:34:46 Wssef, le 5 oct 2006 à 17:15:35 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « passwd, modifier passwd via script shell » dans :
Exécuter un script shell VoirExécution d'un script Pour pouvoir exécuter un script ou un programme en ligne de commande il y a plusieurs possibilités : 1. Le chemin absolu 2. Le chemin relatif 3. Modifier la variable PATH Note: Le Sha...

1

jipicy, le 5 oct 2006 à 17:27:21

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 ;-)) Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy

2

wssef, le 6 oct 2006 à 11:14:39

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.

Répondre à wssef

3

jipicy, le 6 oct 2006 à 11:55:30

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.
Z'@+...che.

JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy

4

Wssef, le 6 oct 2006 à 13:40:49

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 :)

Répondre à Wssef

5

 isatis31, le 30 jui 2008 à 11:34:46

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

Répondre à isatis31