Création d'utilisateur sous linux

doberman -  
jipicy Messages postés 41342 Statut Modérateur -
Bonjour,
je dois créer un script créant des utilisateurs sous linux, sans utiliser user add.
j'ai une erreur et je n'arrive pas a la trouver merci d'avance.
L'endroit ou doit être créer le fichier pour les utilisateur est etc/NIS/passwd, on considere les groupes deja crée.
les erreur données sont:

/UserCreation2: 22: Syntax error: newline unexpected (expecting ")")
thibault@Thib-Linux:~/AdminSyst$ sudo ./UserCreation2
: not foundion2: 2:
: not foundion2: 5:
0
./UserCreation2: 23: Syntax error: newline unexpected (expecting ")")
thibault@Thib-Linux:~/AdminSyst$ sudo ./UserCreation2
: not foundion2: 2:
: not foundion2: 5:

et je ne comprends pas car quand je l'ai écris à l'école tout marchait.

merci d'avance.

# !/bin/bash

IFS='
'

var=`id -u`
echo $var
if [ $var != "0" ];
then
echo "Il vous faut passer en root"
exit 0
fi

read -p "entrer le login de l'utilisateur souhaite ?" username
if [ $username = "x" ];
then
echo "Vous devez donner un nom à l'utilisateur"
exit 0
fi

read -p "entrer le groupe de l'utilisateur? " groupe
case $groupe in
secretaire)
debut=1000
fin=1999;;
toto)
debut=2000
fin=2999;;
titi)
debut=3000
fin=3999;;
prod)
debut=4000
fin=4999;
esac
echo $groupe
echo $debut
echo $fin
echo `grep -w $debut /etc/NIS/passwd | cut -d: -f 3| sort -g >> tmp`
n=`cat tmp | wc -l`
ligne=`cat tmp`
echo $n
nb_place=`expr 1000 - $n`
echo "il te reste $nb_place dans le groupe $groupe"
UserId=100
for i in $ligne
do
if [ $i -gt $UserId ];
then
UserId=$i
echo $UserId
fi
if [ $UserId -gt $fin ];
then
echo "YOU LOSE"
exit 0
fi
done

UserId=`expr $UserId + 1`
echo "Le user Id utilise sera $UserId"

while [ $passwordcheck != $password ]
do
read -p "entrer votre mot de passe personnel a l'abri des regards indiscrets " password
if [ $password = "" ];
then
echo "vous devez donner un mot de passe "
exit 0
fi

read -p "veuillez confirmer votre mot de passe " passwordcheck
if [ $passwordcheck = "" ];
then
echo "veuillez confirmer votre mot de passe "
exit 0
fi
done

read -p "Shell de l'utilisateur ? [/bin/bash] " shell
if [ $shell != "x" ];
then
if [ -x $shell ];
then
shell="-s $shell"
else
echo "Le programme $shell n'existe pas ou n'est pas exécutable"
exit 0
fi
fi

echo `rm ./tmp`
echo `echo "$username:x:$UserId:$debut:commentaire:/export/$username:$shell" >> passwd`
A voir également:

1 réponse

jipicy Messages postés 41342 Statut Modérateur 4 896
 
Salut,

Il manque un point virgule dans la dernière condition du "case" :
case $groupe in
secretaire)
debut=1000
fin=1999;;
toto)
debut=2000
fin=2999;;
titi)
debut=3000
fin=3999;;
prod)
debut=4000
fin=4999;
esac 
;-))
1