Pages : 1
#1 Le 03/03/2007, à 10:51
- mariop31
[Résolu] Prog en bash
Bonjour.
Je souhaite faire un petit script permettant de créer des utilisateurs d'une manière automatique et par la suite récursive.
Quand on le fait en mode commande il me demande un tas de renseignement.
Je souhaiterais que ces renseignements soit passés à la commande adduser en argument directement.
Exemple:
=> adduser --no-create-home jj
Ajout de l'utilisateur « jj »...
Ajout du nouveau groupe « jj » (1002).
Ajout du nouvel utilisateur « jj » (1001) avec le groupe « jj ».
Ne crée pas le dossier personnel '/home/jj'.
Enter new UNIX password: jj
Retype new UNIX password: jj
passwd : le mot de passe a été mis à jour avec succès
Modification des informations relatives à l'utilisateur jj
Entrez la nouvelle valeur ou « Entrée » pour conserver la valeur proposée
Nom complet []: rien
No de bureau []: rien
Téléphone professionnel []: rien
Téléphone personnel []: rien
Autre []: rien
Voilà le début de mon script mais ça ne fonctionne pas.
#!/bin/sh
read i
rep="o"
adduser --no-create-home $i $i $i $i $i $i $i $rep
Dernière modification par mariop31 (Le 03/03/2007, à 18:58)
L’éducation c’est ce qui reste lorsqu’une personne a oublié tout ce qu’elle a appris à l’école... [Albert EINSTEIN]
Hors ligne
#2 Le 03/03/2007, à 10:59
- abetsic
Re : [Résolu] Prog en bash
Je ne suis absolument pas sûr que ce que je vais te donner marche, mais tu peux essayer ça :
#!/bin/sh
read i
rep="o"
adduser --no-create-home $i <EOF
$i
$i
$i
$i
$i
$i
$rep
EOF
#la suite de ton script ici
le "<" permet de faire rentrer ce qui va suivre sur l'entrée standard du programme "adduser" jusqu'à ce qui rencontre la chaine EOF. Mais peut être que les $i ne seront pas remplacés par "jj"
Hors ligne
#3 Le 03/03/2007, à 11:05
- mariop31
Re : [Résolu] Prog en bash
Merci abetsic.
Je viens d'essayer ta modif hélas ça le fait pas.
=> ./us.sh
Là la machine est en attente de quelque chose
je fais <entrée>
Et voilà ce que ça me retourne:
./us.sh: 4: cannot open EOF: No such file
./us.sh: 11: o: not found
./us.sh: 12: EOF: not found
_ _ _ _ _ _ _
L’éducation c’est ce qui reste lorsqu’une personne a oublié tout ce qu’elle a appris à l’école... [Albert EINSTEIN]
Hors ligne
#4 Le 03/03/2007, à 11:14
- abetsic
Re : [Résolu] Prog en bash
essaye avec
adduser $i<<EOF
et en laissant le reste.
Hors ligne
#5 Le 03/03/2007, à 11:22
- mariop31
Re : [Résolu] Prog en bash
Ben non tjrs pas
Mon nouveau code:
#!/bin/sh
read i
rien=\n
rep="o"
adduser --no-create-home $i <<EOF
$i
$i
#$rien
#$rien
#$rien
#$rien
#$rien
$i
$i
$i
$i
$i
$rep
EOF
Sachant que la variable rien j'aimerais l'initialiser à la touche
<entrée>
Voilà la réponse de la machine après appui de la touche <entrée>
=> ./us.sh
adduser: Seuls un ou deux noms sont autorisés.
L’éducation c’est ce qui reste lorsqu’une personne a oublié tout ce qu’elle a appris à l’école... [Albert EINSTEIN]
Hors ligne
#6 Le 03/03/2007, à 11:29
- abetsic
Re : [Résolu] Prog en bash
Tu peux remplacer à priori tes #$rien par un retour chariot.
et essayes en mettant adduser --ton-option $i << "EOF"
Hors ligne
#7 Le 03/03/2007, à 11:44
- mariop31
Re : [Résolu] Prog en bash
Non non.
mon code:
#!/bin/sh
read i
rep="o"
adduser --no-create-home $i<<"EOF"
$i
$i
echo -e '\r'
echo -e '\r'
echo -e '\r'
echo -e '\r'
echo -e '\r'
$rep
EOF
=> ./us.sh jj
adduser: Seuls un ou deux noms sont autorisés.
L’éducation c’est ce qui reste lorsqu’une personne a oublié tout ce qu’elle a appris à l’école... [Albert EINSTEIN]
Hors ligne
#8 Le 03/03/2007, à 12:11
- abetsic
Re : [Résolu] Prog en bash
tu as testé "adduser --no-create-home $i " et en virant le reste voire si le début marche ? Normalement il devrait te donner la main pour que tu rentres les autres informations.
Hors ligne
#9 Le 03/03/2007, à 12:33
- Coo
Re : [Résolu] Prog en bash
Il existe aussi la commande useradd qui ne lit que des parametres, c'est peut etre plus sur non ?
Hors ligne
#10 Le 03/03/2007, à 12:35
- mariop31
Re : [Résolu] Prog en bash
Ca commence à fonctionner.
Voilà mon nouveau code.
#!/bin/sh
echo -n "Entrez le nom de l'utilisateur : "
read i
adduser --no-create-home $i<<"EOF"
$i
$i
echo -e '\r'
echo -e '\r'
echo -e '\r'
echo -e '\r'
echo -e '\r'
##echo o
EOF
Et il boucle sur:
=> ./us.sh
Entrez le nom de l'utilisateur : jj
Ajout de l'utilisateur « jj »...
Ajout du nouveau groupe « jj » (1002).
Ajout du nouvel utilisateur « jj » (1001) avec le groupe « jj ».
Ne crée pas le dossier personnel '/home/jj'.
Enter new UNIX password: Retype new UNIX password: Sorry, passwords do not match
passwd : Authentication information cannot be recovered
passwd: password unchanged
Use of uninitialized value in chop at /usr/sbin/adduser line 523.
Use of uninitialized value in pattern match (m//) at /usr/sbin/adduser line 524.
Essayer à nouveau (O/n) ?Enter new UNIX password: Retype new UNIX password: Modification des informations relatives à l'utilisateur jj
Entrez la nouvelle valeur ou « Entrée » pour conserver la valeur proposée
Nom complet []: No de bureau []: Téléphone professionnel []: Téléphone personnel []: Autre []: Use of uninitialized value in chop at /usr/sbin/adduser line 549.
L’éducation c’est ce qui reste lorsqu’une personne a oublié tout ce qu’elle a appris à l’école... [Albert EINSTEIN]
Hors ligne
#11 Le 03/03/2007, à 12:37
- Coo
Re : [Résolu] Prog en bash
Je peux te demander pourquoi tu n'utilises pas useradd qui permet de faire ce que tu fais juste en passant des arguments ? Ce qui est plus simple
Dernière modification par Coo (Le 03/03/2007, à 12:38)
Hors ligne
#12 Le 03/03/2007, à 12:41
- abetsic
Re : [Résolu] Prog en bash
Ah oui tu as plutot intérêt à utiliser useradd comme le dis Coo, ce sera beaucoup plus simple ! fais un "man useradd" en console pour avoir toutes les options de cette commande. Tu verras ce sera beaucoup plus simple et facile à maintenir.
Hors ligne
#13 Le 03/03/2007, à 12:51
- mariop31
Re : [Résolu] Prog en bash
oups. :rolleyes::rolleyes::rolleyes::rolleyes:
J'avoue que ce ne n'est pas venu à l'esprit.
L'habitude, voilà ce que c'est les habitudes.
Je regarde avec la commande useradd et je vous tient au courant.:cool:
L’éducation c’est ce qui reste lorsqu’une personne a oublié tout ce qu’elle a appris à l’école... [Albert EINSTEIN]
Hors ligne
#14 Le 03/03/2007, à 15:30
- mariop31
Re : [Résolu] Prog en bash
Bon ben voilà j'ai fini par y arriver.
Voilà le code:
#!/bin/bash
##
# Paramètres par défaut pour la commande useradd
##
SHELL=/bin/bash # Shell par défaut
##
# Vérication si l'utilisateur courrant est root.
##
WHOAMI=`/usr/bin/whoami`
if [ $WHOAMI != "root" ]; then
echo "Il faut être root pour faire cette action!"
exit 1
fi
##
# Saisie du nom de l'utilisateur.
##
echo ""
echo -n "Nom d'utilisateur: "
read USERNAME
#
echo "Ajout du groupe" $USERNAME " pour l'utilisateur: $USERNAME."
#
/usr/sbin/groupadd $USERNAME
##
#
echo "Ajout de l'utilisateur: $USERNAME."
#
#
/usr/sbin/useradd -g$USERNAME -s$SHELL -p `mkpasswd --hash=md5 $USERNAME` $USERNAME
#
##
# Résultats.
##
echo ""
echo "Contenu de /etc/passwd:"
echo -n " "
grep "$USERNAME:" /etc/passwd
echo "Contenu de /etc/shadow:"
echo -n " "
grep "$USERNAME:" /etc/shadow
echo "Résultat de la commande passwd :"
echo -n " "
passwd -S $USERNAME
echo ""
Bien sur il va falloir améliorer les contrôles notamment les vérifications suivantes:
1) Est ce que le groupe n'existe pas déjà ??
2) Est ce que l'utilisateur n'existe pas déjà??
Merci à tous les deux de m'avoir mis sur la voie.
Promis quand j'ai rajouté les deux verifs je poste.
L’éducation c’est ce qui reste lorsqu’une personne a oublié tout ce qu’elle a appris à l’école... [Albert EINSTEIN]
Hors ligne
#15 Le 03/03/2007, à 18:58
- mariop31
Re : [Résolu] Prog en bash
Et voilà je suis revenu, je viens de finaliser.
#!/bin/bash
##
# Paramètres par défaut pour la commande useradd
##
SHELL=/bin/bash # Shell par défaut
##
# Vérication si l'utilisateur courrant est root.
##
WHOAMI=`/usr/bin/whoami`
if [ $WHOAMI != "root" ]; then
echo "Il faut être root pour faire cette action!"
exit 1
fi
##
# Saisie du nom de l'utilisateur.
##
echo ""
echo -n "Nom d'utilisateur: "
read USERNAME
#
##
# Vérification si l'utilisateur existe déjà.
##
util=`( grep "$USERNAME:" /etc/passwd ) | awk -F":" '{print$1}'`
#
if [ $USERNAME = $util ]; then
echo "L'utilisateur $util existe déjà"
exit 1
fi
#
##
# Vérification si le groupe existe déjà.
##
groupe=`( grep "$USERNAME:" /etc/group ) | awk -F":" '{print$1}'`
#
if [ $USERNAME = $groupe ]; then
echo "Le groupe $groupe existe déjà"
exit 1
fi
#
echo "Ajout du groupe" $USERNAME " pour l'utilisateur: $USERNAME."
#
/usr/sbin/groupadd $USERNAME
##
#
echo "Ajout de l'utilisateur: $USERNAME."
#
#
/usr/sbin/useradd -g$USERNAME -s$SHELL -p `mkpasswd --hash=md5 $USERNAME` $USERNAME
#
##
# Résultats.
##
echo ""
echo "Contenu de /etc/passwd:"
echo -n " "
grep "$USERNAME:" /etc/passwd
echo "Contenu de /etc/shadow:"
echo -n " "
grep "$USERNAME:" /etc/shadow
echo "Résultat de la commande passwd :"
echo -n " "
passwd -S $USERNAME
echo ""
Encore merci à abetsic et Coo.
L’éducation c’est ce qui reste lorsqu’une personne a oublié tout ce qu’elle a appris à l’école... [Albert EINSTEIN]
Hors ligne
#16 Le 03/03/2007, à 20:29
- Coo
Re : [Résolu] Prog en bash
Ah bah c'est cool aprés une boucle while et tu peux créer pleins d'users à la volée...
Hors ligne
#17 Le 04/03/2007, à 18:03
- mariop31
Re : [Résolu] Prog en bash
Ta suggestion étant la bienvenu, j'ai modifié mon script de façon à pouvoir faire soit un création ou une suppression récursive et avec un peu de couleur la seule chose qui ne fonctionne pas encore c'est le clignotement.
Le voilà:
#!/bin/bash
##
# Couleurs
#
VERT="\\033[1;32m"
NORMAL="\\033[0;39m"
ROUGE='\E[31;40m'
ROSE="\\033[1;35m"
BLEU="\\033[1;34m"
BLANC='\E[37;40m'
BLANCLAIR="\\033[1;08m"
JAUNE="\\033[1;33m"
CYAN="\\033[1;36m"
CLIGNO='\E[5m'
##
# Paramètres par défaut pour la commande useradd
##
SHELL=/bin/bash # Shell par défaut
##
# Vérication si l'utilisateur courrant est root.
##
WHOAMI=`/usr/bin/whoami`
if [ $WHOAMI != "root" ]; then
echo "Il faut être root pour faire cette action!"
exit 1
fi
##
# Préparation des fonctions Création et Suppression Vérification util group resul
#
Vutil() {
util=`( grep "$USERNAME:" /etc/passwd ) | awk -F":" '{print$1}'`
}
Vgroup() {
groupe=`( grep "$USERNAME:" /etc/group ) | awk -F":" '{print$1}'`
}
resul() {
echo ""
echo "Contenu de /etc/passwd:"
echo -n " "
grep "$USERNAME:" /etc/passwd
echo "Contenu de /etc/shadow:"
echo -n " "
grep "$USERNAME:" /etc/shadow
echo "Résultat de la commande passwd :"
echo -n " "
passwd -S $USERNAME
echo ""
echo ""
}
Suppression() {
##
# Saisie du nom de l'utilisateur.
##
echo "Je suis dans la fonction Suppression de l'utilisateur "
echo ""
echo -n "Nom d'utilisateur: "
read USERNAME
#
##
# Boucle pour plusieurs utilisateurs
##
while [ -n "$USERNAME" ]
do
##
# Vérification si l'utilisateur existe déjà.
##
Vutil
#
case $util in
$USERNAME) echo "L'utilisateur $util existe je le supprime"
;;
"" ) echo "L'utilisateur $util n'existe pas " ;;
esac
#
##
# Vérification si le groupe existe déjà.
##
Vgroup
#
case $groupe in
$USERNAME) echo "Le groupe $groupe existe je le supprime"
;;
"" )echo "Le groupe $groupe n'existe pas " ;;
esac
#
#
echo "Suppression de l'utilisateur: $USERNAME."
#
#
/usr/sbin/userdel $USERNAME
#
echo "Suppression du groupe" $USERNAME " pour l'utilisateur: $USERNAME."
#
/usr/sbin/groupdel $USERNAME
##
#
##
# Résultats.
##
resul
echo -n "Un aute Nom d'utilisateur "
echo ""
echo " Entrez le Nom d'utilisateur ou <entrée> pour sortir : "
read USERNAME
done
}
Creation() {
##
# Saisie du nom de l'utilisateur.
##
echo "Je suis dans la fonction Création de l'utilisateur "
echo ""
echo -n "Nom d'utilisateur: "
read USERNAME
#
##
# Boucle pour plusieurs utilisateurs
##
while [ -n "$USERNAME" ]
do
##
# Vérification si l'utilisateur existe déjà.
##
Vutil
#
case $USERNAME in
$util) echo "L'utilisateur $util existe déjà"
exit 1;;
*);;
esac
#
##
# Vérification si le groupe existe déjà.
##
Vgroup
#
case $USERNAME in
$groupe) echo "Le groupe $groupe existe déjà"
exit 1;;
*);;
esac
#
echo "Ajout du groupe" $USERNAME " pour l'utilisateur: $USERNAME."
#
/usr/sbin/groupadd $USERNAME
##
#
echo "Ajout de l'utilisateur: $USERNAME."
#
#
/usr/sbin/useradd -g$USERNAME -s$SHELL -p `mkpasswd --hash=md5 $USERNAME` $USERNAME
#
##
# Résultats.
##
resul
echo -n "Un aute Nom d'utilisateur "
echo ""
echo " Entrez le Nom d'utilisateur ou <entrée> pour sortir : "
read USERNAME
done
}
echo ""
echo -e "$CLIGNO" "$ROUGE" "Attention ce script crée ou supprime un utilisateur et son groupe portant le même nom et un mot de passe égal au nom d'utilisateur" "$NORMAL"
echo ""
echo -e "$VERT" "Exemple utilisateur" "$BLANC" "Jean" "$VERT" " ayant comme mot de passe" "$BLANC" "Jean" "$VERT" "appartenant au groupe" "$BLANC" "Jean " "$NORMAL"
echo -n "Création ou Suppression d'utilisateurs (C|c / S|s): "
read REP
#
case $REP in
"C" | "c" ) echo "Création de l'utilisateur "
Creation ;;
"S" | "s" ) echo "Suppression de l'utilisateur "
Suppression ;;
*) echo "Désolé "
echo "J'attends C ou c pour une Création , S ou s pour une Suppression ";;
esac
J'attends les critiques on sait jamais peu mieux faire.
L’éducation c’est ce qui reste lorsqu’une personne a oublié tout ce qu’elle a appris à l’école... [Albert EINSTEIN]
Hors ligne
#18 Le 04/03/2007, à 20:10
- Coo
Re : [Résolu] Prog en bash
Ben écoute je vais bientot faire de l'administration en masse de serveurs donc je te le prend, je vais rajouter d'ici peut la lecture dans un fichier texte ou sera stocker les utilisateurs.
Hors ligne
#19 Le 05/03/2007, à 18:48
- mariop31
Re : [Résolu] Prog en bash
Pas de pb, j'ai l'intention de le faire vivre ce script. En effet je projette de le rendre graphique, et pour l'instant je ne sais pas encore qu'est ce que je vais utiliser comme langage de programmation.
Je pense dans un premier temps à "dialog".
En effet le but de cette appli c'est de faire un menu qui soit convivial et qui propose la création d'utilisateurs unix, dans la foulée un utilisateur "samba" la création du nom de machine associé à l'utilisateur etc..
En fait je pense à mon collègue de travail qui assez réfractaire à la ligne de commande et à linux en général.
Ben voilà, je suis à l'écoute et attend éventuellement des modifications qui le rende encore meilleur voire même une autre façon de faire .
L’éducation c’est ce qui reste lorsqu’une personne a oublié tout ce qu’elle a appris à l’école... [Albert EINSTEIN]
Hors ligne
#20 Le 17/03/2007, à 12:17
- mariop31
Re : [Résolu] Prog en bash
Je rappelle le but de ce script.
Un menu qui soit convivial et qui propose la création d'utilisateurs unix, un utilisateur "samba" la création du nom de machine associé à l'utilisateur et bien entendu les suppressions qui vont avec.
Ce script utilise la fonction dialog.
Ce n'est pas parfait mais ça tourne.
Regardez, essayez, j'attends vos critiques.
Ci joint le code:
#! /bin/sh
# Mario PALLAI: v 0.0 17/03/2007 10:00:00 $
touch /tmp/dialogtmp && FICHTMP=/tmp/dialogtmp
trap "rm -f $FICHTMP" 0 1 2 3 5 15
##
# Couleurs
#
VERT="\\033[1;32m"
NORMAL="\\033[0;39m"
ROUGE='\E[31;40m'
ROSE="\\033[1;35m"
BLEU="\\033[1;34m"
BLANC='\E[37;40m'
BLANCLAIR="\\033[1;08m"
JAUNE="\\033[1;33m"
CYAN="\\033[1;36m"
CLIGNO='\E[5m'
## Variables
ctotal=""
csamba=""
slinux=""
ssamba=""
cposte=""
sposte=""
a=""
u=""
mdp=""
##
# Paramètres par défaut pour la commande useradd
##
SHELL=/bin/bash # Shell par défaut
##
# Vérication si l'utilisateur courrant est root.
##
WHOAMI=`/usr/bin/whoami`
if [ $WHOAMI != "root" ]; then
echo "Attention il faut être root !"
exit 1
fi
##
# Préparation des fonctions Création et Suppression Vérification util group samba poste
##
Vutil() {
util=`( grep "$u:" /etc/passwd ) | awk -F":" '{print$1}'`
}
Vgroup() {
groupe=`( grep "$u:" /etc/group ) | awk -F":" '{print$1}'`
}
verif() {
dialog --backtitle "Vérification de la saisie" --title "Votre saisie" \
--msgbox "
$a " 8 40
}
Vsamba() {
usamba=`( pdbedit -L | grep $u ) |awk -F":" '{print$1}'`
}
cre_users() {
u=` awk -F"," '{print$1}' $FICHTMP `
mdp=` awk -F"," '{print$2}' $FICHTMP `
echo $mdp > mdp.txt
echo $mdp >> mdp.txt
/usr/bin/smbpasswd -a $u -s < mdp.txt
rm mdp.txt
}
cre_poste() {
if [ `( grep "pc:" /etc/group ) | awk -F":" '{print$1}'` ="" ]
then
/usr/sbin/groupadd pc
fi
/usr/sbin/useradd -g pc -s /dev/false $u
/usr/bin/smbpasswd -m -a $u
}
sup_poste() {
/usr/bin/smbpasswd -x $u
/usr/sbin/userdel $u
}
cre_groupl() {
u=` awk -F"," '{print$1}' $FICHTMP `
/usr/sbin/groupadd $u
}
cre_userl() {
u=` awk -F"," '{print$1}' $FICHTMP `
mdp=` awk -F"," '{print$2}' $FICHTMP `
/usr/sbin/useradd -g$u -s$SHELL -p `mkpasswd --hash=md5 $mdp` $u
}
CLinux () {
dialog --backtitle "Création utilisateur " --title "Création utilisateur " \
--inputbox "
La saisie se fait sous la forme: \n
nom de l'utilisateur Linux, son mot de passe.\n \n \n
Exemple:création d'un utilisateur \n
jean,mot_de_passe \n \n \n \n
" 24 60 2> $FICHTMP
# retour d'information (boîte d'info)
# 0 est le code retour du bouton Accepter
# ici seul celui-ci attribue un nom de login.
case $? in
0) ctotal=`cat $FICHTMP`
if [ `cat $FICHTMP` ="" ]
then ctotal="Vous n'avez pas de nom d'utilisateur Linux!"
dialog --backtitle "Vérification du nom de l'utilisateur Linux" --title "L'utilisateur" \
--msgbox "
$ctotal " 8 40
break
fi
;;
*) ctotal="Vous avez tapé Annulation!"
dialog --backtitle "Vérification de la saisie" --title "Vous avez tapé Annulation" \
--msgbox "
$ctotal " 8 40
break
;;
esac
## Stockage de user,mdp
a=$ctotal
verif a
u=`echo $a | awk -F"," '{print$1}'`
Vgroup u
case $u in
$groupe) dialog --backtitle "Vérification du groupe" --title "Le groupe" \
--sleep 2 --infobox "
le groupe $groupe existe déjà " 8 40 ;;
*)cre_groupl u
if [ $Vgroup u != "" ]
then
dialog --backtitle "Vérification du groupe" --title "Le groupe" \
--msgbox "
le groupe $groupe à été créée avec succès " 8 40
fi ;;
esac
u=`echo $a | awk -F"," '{print$1}'`
Vutil u
case $u in
$util) dialog --backtitle "Vérification de l'utilisateur" --title "L'utilisateur" \
--sleep 2 --infobox "
$util existe déjà " 8 40 ;;
*) cre_userl u
if [ $Vutil u != "" ]
then
dialog --backtitle "Vérification de l'utilisateur" --title "L'utilisateur" \
--msgbox "
l'utilisateur $util à été créée avec succès " 8 40
fi
;;
esac
}
CSamba () {
dialog --backtitle "Création utilisateur Samba" --title "Création utilisateur Samba " \
--inputbox "
\
Vous devez créér en premier un utilisateur Linux \n
\n
La saisie se fait sous la forme: \n
nom de l'utilisateur.\n \n \n
Exemple:création d'un utilisateur Samba \n
jean,mdp\n
" 24 60 2> $FICHTMP
# retour d'information (boîte d'info)
# 0 est le code retour du bouton Accepter
# ici seul celui-ci attribue un nom de login.
case $? in
0) csamba=`cat $FICHTMP`
if [ `cat $FICHTMP` ="" ]
then csamba="Vous n'avez pas de nom d'utilisateur Samba!"
dialog --backtitle "Vérification de la saisie" --title "Saisie de l'utilisateur Samba" \
--msgbox "
$csamba " 8 40
break
fi
;;
*) csamba="Vous avez tapé Annulation!"
dialog --backtitle "Vérification de la saisie" --title "Vous avez tapé Annulation" \
--msgbox "
$csamba " 8 40
break
;;
esac
## Stockage de l'utilisateur Samba+mdp
a=$csamba
verif a
u=`echo $a | awk -F"," '{print$1}'`
Vutil u
if [ $util ="" ]
then
dialog --backtitle "L'utilisateur Linux n'existe pas" --title "L'utilisateur" \
--msgbox "
Vous devez créér en premier un utilisateur Linux " 8 40
break
fi
Vsamba u
case $u in
$usamba) dialog --backtitle "Vérification de la présence de l'utilisateur Samba" --title "L'utilisateur Samba" \
--sleep 2 --infobox "
l'utilisateur Samba $usamba existe déjà " 8 40 ;;
*) cre_users a
if [ $Vsamba a != "" ]
then
dialog --backtitle "Vérification de l'utilisateur Samba" --title "L'utilisateur Samba" \
--msgbox "
l'utilisateur Samba $usamba à été créée avec succès " 8 40
fi ;;
esac
}
SLinux (){
dialog --backtitle "Suppression utilisateur Linux" --title "Suppression utilisateur Linux" \
--inputbox "
La saisie se fait sous la forme: \n
nom de l'utilisateur.\n \n \n
Exemple:suppression d'un utilisateur Linux \n
jean\n
" 24 60 2> $FICHTMP
# retour d'information (boîte d'info)
# 0 est le code retour du bouton Accepter
# ici seul celui-ci attribue un nom de login.
case $? in
0) slinux=`cat $FICHTMP`
if [ `cat $FICHTMP` ="" ]
then slinux="Vous n'avez pas de nom d'utilisateur Linux!"
fi
;;
*) slinux="Vous avez tapé Annulation!";;
esac
## Stockage de l'utilisateur Linux
a=$slinux
verif a
u=$a
Vutil u
case $u in
$util) /usr/sbin/userdel $u
dialog --backtitle "Vérification de l'utilisateur" --title "L'utilisateur" \
--msgbox "
l'utilisateur $util à été supprimé avec succès ainsi que son groupe" 8 40
;;
*)dialog --backtitle "Vérification l'utilisateur" --title " L'utilisateur" \
--sleep 2 --infobox "
l'utilisateur $util n'existe pas " 8 40 ;;
esac
}
SSamba (){
dialog --backtitle "Suppression utilisateur Samba" --title "Suppression utilisateur Samba" \
--inputbox "
La saisie se fait sous la forme: \n
nom de l'utilisateur.\n \n \n
Exemple:suppression d'un utilisateur Samba \n
jean\n
" 24 60 2> $FICHTMP
# retour d'information (boîte d'info)
# 0 est le code retour du bouton Accepter
# ici seul celui-ci attribue un nom de login.
case $? in
0) ssamba=`cat $FICHTMP`
if [ `cat $FICHTMP` ="" ]
then ssamba="Vous n'avez pas de nom d'utilisateur Samba!"
fi
;;
*) ssamba="Vous n'avez pas de nom d'utilisateur Samba!";;
esac
## Stockage de l'utilisateur Samba
a=$ssamba
verif a
u=$a
Vsamba u
case $u in
$usamba) /usr/bin/smbpasswd -x $u
dialog --backtitle "Vérification de l'utilisateur Samba" --title "L'utilisateur Samba" \
--msgbox "
l'utilisateur Samba $samba à été supprimé avec succès " 8 40
;;
*)dialog --backtitle "Vérification l'utilisateur Samba" --title " L'utilisateur Samba" \
--sleep 2 --infobox "
l'utilisateur Samba $samba n'existe pas " 8 40 ;;
esac
}
CPoste (){
dialog --backtitle "Création poste netbios" --title "Création poste netbios" \
--inputbox "
La saisie se fait sous la forme: \n
nom du poste.\n \n \n
Exemple:création du poste poste33 \n
poste33\n
" 24 60 2> $FICHTMP
# retour d'information (boîte d'info)
# 0 est le code retour du bouton Accepter
# ici seul celui-ci attribue un nom de login.
case $? in
0) cposte=`cat $FICHTMP`
if [ `cat $FICHTMP` ="" ]
then cposte="Vous n'avez pas de nom de poste!"
dialog --backtitle "Vérification de la saisie" --title "Saisie du nom de poste" \
--msgbox "
$cposte " 8 40
break
fi
;;
*) cposte="Vous avez tapé Annulation!"
dialog --backtitle "Vérification de la saisie" --title "Vous avez tapé Annulation" \
--msgbox "
$cposte " 8 40
break
;;
esac
a=$cposte
verif a
u=`echo $a | awk -F"," '{print$1}'`
Vsamba u
u=$u$
case $u in
$usamba) dialog --backtitle "Vérification de la présence du poste" --title "Le poste" \
--sleep 2 --infobox "
le poste $usamba existe déjà " 8 40 ;;
*) cre_poste u
if [ $Vsamba u != "" ]
then
dialog --backtitle "Vérification de la présence du poste" --title "Le poste" \
--msgbox "
le poste $usamba à été créée avec succès " 8 40
fi ;;
esac
}
SPoste (){
dialog --backtitle "Suppression poste netbios" --title "Suppression poste netbios" \
--inputbox "
La saisie se fait sous la forme: \n
nom du poste.\n \n \n
Exemple:suppression du poste poste33 \n
poste33\n
" 24 60 2> $FICHTMP
# retour d'information (boîte d'info)
# 0 est le code retour du bouton Accepter
# ici seul celui-ci attribue un nom de login.
case $? in
0) sposte=`cat $FICHTMP`
if [ `cat $FICHTMP` ="" ]
then sposte="Vous n'avez pas de nom de poste!"
dialog --backtitle "Vérification de la saisie" --title "Saisie du nom de poste" \
--msgbox "
$sposte " 8 40
break
fi
;;
*) sposte="Vous avez tapé Annulation!"
dialog --backtitle "Vérification de la saisie" --title "Vous avez tapé Annulation" \
--msgbox "
$sposte " 8 40
break
;;
esac
## Stockage du nom de poste
a=$sposte
verif a
u=`echo $a | awk -F"," '{print$1}'`
Vsamba u
u=$u$
case $u in
$usamba) sup_poste u
if [ $Vsamba u != "" ]
then
dialog --backtitle "Vérification de la présence du poste" --title "Le poste" \
--msgbox "
le poste $usamba à été supprimé avec succès " 8 40
fi ;;
*) dialog --backtitle "Vérification de la présence du poste" --title "Le poste" \
--sleep 2 --infobox "
le poste $a n'existe pas " 8 40 ;;
esac
}
CTotale() {}
STotale() {}
deb() {
dialog --backtitle "Menu crée par Mario PALLAI v 0.0 17/03/2007 10:00:00" --title "Attention vous êtes root" \
--ok-label "Valider" --cancel-label "Quitter" \
--checklist "
Cochez la case correspondant à votre choix." 18 60 10 \
"CLinux" "Création Utilisateur linux." off \
"CSamba" "Création Utilisateur Samba." off \
"CPoste" "Création Poste (nom netbios)." off \
"SPoste" "Suppression Poste (nom netbios)." off \
"SSamba" "Suppression Utilisateur Samba." off \
"SLinux" "Suppression Utilisateur Linux ." off 2> $FICHTMP
# "CTotale" "Création totale." off \
# "STotale" "Suppression totale." off 2> $FICHTMP
# traitement de la réponse
# 0 est le code retour du bouton Valider
# ici seul le bouton Valider permet de continuer
# tout autre action (Quitter, Esc, Ctrl-C) arrête le script.
if [ $? = 0 ]
then
for i in `cat $FICHTMP`
do
case $i in
\"CLinux\") CLinux ;;
\"CSamba\") CSamba ;;
\"CPoste\") CPoste ;;
\"SPoste\") SPoste ;;
\"SSamba\") SSamba ;;
\"SLinux\") SLinux ;;
##\"CTotale\") CTotale ;;
##\"STotale\") STotale ;;
esac
done
else exit 0
fi
}
# Fin des définitions des fonctions
# Boucle d'appel du menu principal à l'infini
while :
do deb
done
Voilà comme dit plus haut j'attends vos critiques.
L’éducation c’est ce qui reste lorsqu’une personne a oublié tout ce qu’elle a appris à l’école... [Albert EINSTEIN]
Hors ligne
Pages : 1