Bonjour a tous !!!
je voudrait creer des utilisateurs via un script qui va chercher les mot de passe et les nom d'utilisateur dans un fichier..
je n'y arrive pas merci de votre aide
Modérateur: modos Ixus
#!/bin/bash
# SCRIPT creer2.sh
# ================
# Création automatique des comptes d'apres le fichier users.txt
# appel : ./creer2.sh [users.txt]
# analyse de la ligne de commande
# a t-on passe un parametre ?
if [ $# = 1 ]
then
fichier=$1
else
echo "Nom du fichier des comptes Linux a creer [par defaut users.txt]"
read fichier
if [ -z $fichier ]
then
fichier="users.txt"
echo "Utilisation du fichier $fichier pour genener les comptes"
fi
fi
# le fichier $fichier existe t-il ? si non, sortie du script par exit 1
if [ ! -e $fichier ]
then
echo "Le fichier $fichier n'existe pas ! Verifiez !"
exit 1
fi
# Lecture une par une des lignes de $fichier
cat $fichier | while true
do
read ligne
# c'est la fin du fichier --> sortie brutale de la boucle
if [ "$ligne" = "" ]
then
break
fi
# Traitement de la ligne (attention pas de " " autour de $ligne)
# on "eclate" la ligne en affectant les variables de position
set -- $ligne
login=$1
mdp=$2
nom=$3
groupe=$4
echo $login $passwd $groupe $nom
# existe t-il un sous-rep au nom $login dans /home/ ?
if [ -d "/home/$login" ]
then
echo "Le compte $login existe deja ! "
# on cree le compte avec $groupe comme groupe primaire
else
useradd -G $groupe $login
echo $mdp | (passwd --stdin $login)
smbpasswd -a $login $mdp
uid=$(grep -w "^$login" /etc/passwd | cut -d: -f3)
echo "creation de $login / uid = $uid / passwd = $mdp"
echo "creation de $login / uid = $uid / passwd = $mdp, cree le $(date)" >>creer.txt
fi
done
# fin boucle de creation
echo "----------------------------------------------" >>creer.txt
#!/bin/bash
# SCRIPT creer2.sh
# ================
# Création automatique des comptes d'apres le fichier users.txt
# appel : ./creer2.sh [users.txt]
# analyse de la ligne de commande
# a t-on passe un parametre ?
if [ $# = 1 ]
then
fichier=$1
else
echo "Nom du fichier des comptes Linux a creer [par defaut users.txt]"
read fichier
if [ -z $fichier ]
then
fichier="users.txt"
echo "Utilisation du fichier $fichier pour genener les comptes"
fi
fi
# le fichier $fichier existe t-il ? si non, sortie du script par exit 1
if [ ! -e $fichier ]
then
echo "Le fichier $fichier n'existe pas ! Verifiez !"
exit 1
fi
# Lecture une par une des lignes de $fichier
cat $fichier | while true
do
read ligne
# c'est la fin du fichier --> sortie brutale de la boucle
if [ "$ligne" = "" ]
then
break
fi
# Traitement de la ligne (attention pas de " " autour de $ligne)
# on "eclate" la ligne en affectant les variables de position
set -- $ligne
login=$1
mdp=$2
nom=$3
groupe=$4
echo $login $passwd $groupe $nom
# existe t-il un sous-rep au nom $login dans /home/ ?
if [ -d "/home/$login" ]
then
echo "Le compte $login existe deja ! "
# on cree le compte avec $groupe comme groupe primaire
else
useradd -G $groupe $login
echo $login:$mdp | chpasswd
smbpasswd -a $login $mdp
uid=$(grep -w "^$login" /etc/passwd | cut -d: -f3)
echo "creation de $login / uid = $uid / passwd = $mdp"
echo "creation de $login / uid = $uid / passwd = $mdp, cree le $(date)" >>creer.txt
fi
done
# fin boucle de creation
echo "----------------------------------------------" >>creer.txt
login pass nom groupe
login pass nom groupe
Retour vers Linux et BSD (forum généraliste)
Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit et 1 invité