Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 03/03/2007, à 11: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, à 19: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, à 11: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, à 12: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, à 12: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, à 12: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, à 12: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, à 12: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, à 13: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, à 13: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, à 13: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, à 13: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, à 13:38)

Hors ligne

#12 Le 03/03/2007, à 13: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, à 13:51

mariop31

Re : [Résolu] Prog en bash

oups. roll: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, à 16: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, à 19: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, à 21: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, à 19: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.
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

#18 Le 04/03/2007, à 21: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, à 19: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, à 13: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.

[img]35f24cb4ca20085c1766970ff3de868d.png[/img]

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