Aller au contenu

[Resolu]Aide script bash

Featured Replies

Posté(e)

Bonjour à tous, je viens de finaliser un petit script d'ajout utilisateur puis paramétrage de postfix (fetchmail et table virtual) pour nos admins non linuxien

Je me trouve confronté a un petit soucis avec le password de l'utilsateur:

echo "saisissez le nom de l'utilisateur a ajouter"
read vnom
echo "saisissez le mot de passe de l'utilisateur"
read pass


useradd -p $pass $vnom
..........

donc la variable -p $pass ne passe pas et je suis obligé de modifier le mot de passa à la mano...Surement du au crypatge mais y a t'il une possibilité de passer outre??

Par avance merci, je continue mes recherches....

++

Modifié par BoobZ

Posté(e)

Bonjour à tous, je viens de finaliser un petit script d'ajout utilisateur puis paramétrage de postfix (fetchmail et table virtual) pour nos admins non linuxien

Je me trouve confronté a un petit soucis avec le password de l'utilsateur:

echo "saisissez le nom de l'utilisateur a ajouter"
read vnom
echo "saisissez le mot de passe de l'utilisateur"
read pass


useradd -p $pass $vnom
..........

donc la variable -p $pass ne passe pas et je suis obligé de modifier le mot de passa à la mano...Surement du au crypatge mais y a t'il une possibilité de passer outre??

Par avance merci, je continue mes recherches....

++

Le mot de passe doit etre dans sa forme cryptée.

passwd = $(openssl passwd -1 $pass)

useradd -p $passwd $vnom

-1 = mot de passe au format shadow

-crypt = mot de passe sans shadow

Tuxbubling

Posté(e)
  • Auteur

Re,

merci pour cette reponse mais ca ne passe pas :ouioui:

passwd : Utilisateur = inconnu

dans ce script:

echo "saisissez le nom de l'utilisateur a ajouter"
read vnom
echo "saisissez le mot de passe de l'utilisateur"
read pass
#echo "l'utilsateur $nom a comme mot de passe $pass"
echo "saisisez son adresse mail"
read mail

passwd = $(openssl passwd -1 $pass)
useradd -p $pass $vnom

surement une erreur ou une variable mal placé, je cherche...si quelqu'un voit la soluc' :-D

:transpi:

++

Posté(e)

Re,

merci pour cette reponse mais ca ne passe pas :ouioui:

passwd : Utilisateur = inconnu

dans ce script:

echo "saisissez le nom de l'utilisateur a ajouter"
read vnom
echo "saisissez le mot de passe de l'utilisateur"
read pass
#echo "l'utilsateur $nom a comme mot de passe $pass"
echo "saisisez son adresse mail"
read mail

passwd = $(openssl passwd -1 $pass)
useradd -p $pass $vnom

surement une erreur ou une variable mal placé, je cherche...si quelqu'un voit la soluc' :-D

:transpi:

++

PASSWD=$(openssl passwd -1 $pass)

useradd -p $PASSWD $vnom

il t'as lancé la commande 'passwd' en fait ^^ (les espaces en trop :))

variante:

pass=$(openssl passwd -1 $pass)

useradd -p $pass $vnom

Posté(e)
  • Auteur

pffff en effet ca marche mieux (parfaitement serait plus adequat)...

:fou:

Mon mal de crane a raison de ma patience...Merci d'utiliser la tienne a bon essien... :pciwin:

++

Posté(e)

D'après le "man useradd" le paramètre -p password ne peut qu'utiliser le mot de passe de type crypt.

Donc un

passwd = $(openssl passwd -crypt $pass)

useradd -p $passwd $vnom

semble être la seule possibilité !

Mais pourquoi pas faire en 2 étapes si ça ne marche pas...

Le useradd et ensuite un passwd.

echo "saisissez le nom de l'utilisateur a ajouter"
read vnom
echo "saisisez son adresse mail"
read mail

useradd $vnom
passwd $vnom

de plus, tu pourras avoir les options de passwd (expiration du compte -n et -x, expiration du mot de passe -i)

NOTE: Il est possible de capter ton mot de passe avec un read également, mais il faute que tu ajoutes un "Enter" après passwd $vnom et je ne me rappelle plus de comment l'écrire et je n'ai pas mes notes.

Posté(e)
  • Auteur

Ca ne me derangeait pas de le faire en plusieurs etapes, le seul soucis en faisant un

passwd $vnom

c'etait de pseudo taper 2 fois le mot de passe et de le valider autant de fois.... Je pensais bien que la variable -p du useradd devait m'aider mais qu'une astuce etait necessaire.....

Maintenant tout est ok, et fonctionnel :fou:

++

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.