salut,
j'ai un problème dans la création d'un script shell pour l'ajout d'utilisateur samba apartir d'un fichier texte
Le problème se situe exactement en exécutant la commande smbpasswd
pouvez-nous aidez
merci pour me répondre, et voila mon script:
#!/bin/bash
fichier="user.txt"
cat $fichier|while true
do
# lecture ligne par ligne du fichier
read ligne
if [ "$ligne = "" ]
then
break
fi
# login de l'utilisateur
login=$1
# mot de passe de l'utilisateur
mdp=$2
#nom complet de l'utilisateur
nom=$3
#groupe de l'utlisateur
groupe=$4
if [ -d "/home/$groupe" ]
then
testg=1
else
groupadd $groupe
mkdir $groupe
fi
if [ -d "/home/$groupe/$login" ]
then
testl=1
else
mkdir /home/$groupe/$login
chown /home/$groupe/$login $login
useradd -g $groupe -d /home/$groupe/$login $login
#le probleme réside dans cette ligne ,il ne configure pas les mots de passe samba
smbpasswd -a $login $mdp
fi
done
#EoF
j'attends vos réponse le plus vite
bonjour:
On a executé la ligne de commande:
echo -e"$mdp\n$mdp\n" | /usr/bin/smbpasswd -s -a $login
mais elle ne s'exécute pas et ce message apparait :
Mismatch - password unchanged.
Unable to get new password.
S'il ne vous dérange pas,est-ce que vous pouvez nous aidez.
Merci on vous attend...
# Un exemple de script qui marche
Posté par Ellendhel (site web personnel) . Évalué à 2.
En attendant, un exemple de script opérationnel :
#!/bin/bash
# le fichier doit comporter un nom de compte et un mot de passe par ligne
# separes par un blanc
/bin/cat ./liste |
# lecture ligne a ligne
while
read nom mdp
do
echo -e "$mdp\n$mdp\n" | /usr/bin/smbpasswd -s -a $nom
done
# EoF
Ne pas oublier que tes comptes utilisateurs doivent déjà être déclarés au niveau du système (voir la commande newusers pour faire un ajout en masse).
[^] # Re: Un exemple de script qui marche
Posté par nesrine . Évalué à 1.
#!/bin/bash
fichier="user.txt"
cat $fichier|while true
do
# lecture ligne par ligne du fichier
read ligne
if [ "$ligne = "" ]
then
break
fi
# login de l'utilisateur
login=$1
# mot de passe de l'utilisateur
mdp=$2
#nom complet de l'utilisateur
nom=$3
#groupe de l'utlisateur
groupe=$4
if [ -d "/home/$groupe" ]
then
testg=1
else
groupadd $groupe
mkdir $groupe
fi
if [ -d "/home/$groupe/$login" ]
then
testl=1
else
mkdir /home/$groupe/$login
chown /home/$groupe/$login $login
useradd -g $groupe -d /home/$groupe/$login $login
#le probleme réside dans cette ligne ,il ne configure pas les mots de passe samba
smbpasswd -a $login $mdp
fi
done
#EoF
j'attends vos réponse le plus vite
[^] # Re: Un exemple de script qui marche
Posté par Ellendhel (site web personnel) . Évalué à 2.
#le probleme réside dans cette ligne ,il ne configure pas les mots de passe samba
smbpasswd -a $login $mdp
Il te manque l'option -s avec une commande echo qui va bien pour que le mot de passe soit bien passé en paramètre.
Voir le script que j'ai donné plus haut et la page de man ou la documentation de Samba pour plus de détails.
[^] # Re: Un exemple de script qui marche
Posté par nesrine . Évalué à 1.
Je veut essayer et je vous dit le resultat.
A bientot
[^] # version avec expect
Posté par zx81 . Évalué à 1.
cat <<EOF | expect -f - "$USER" "$PWD"
spawn smbldap-passwd [lindex \$argv 0]
set password [lindex \$argv 1]
expect "password:"
send "\$password\r"
expect "password:"
send "\$password\r"
expect eof
EOF
faut mettre ce qu'il faut dans les 2 variables USER et PWD avant...
[^] # Re: Un exemple de script qui marche
Posté par nesrine . Évalué à 1.
On a executé la ligne de commande:
echo -e"$mdp\n$mdp\n" | /usr/bin/smbpasswd -s -a $login
mais elle ne s'exécute pas et ce message apparait :
Mismatch - password unchanged.
Unable to get new password.
S'il ne vous dérange pas,est-ce que vous pouvez nous aidez.
Merci on vous attend...
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.