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 26/01/2015, à 15:14

Achronium

Script d'ajout d'utilisateur

Bonjour a tous.
Nouveau sur Ubuntu, et par extension sur le forum, dans l'objet d'un stage dont je vous épargnerais les détails je tente de produire un script permettant l'ajout d’utilisateur par le référencement de leurs ID, MDP, et Groupe. N'ayant pas trouvé mon bonheur sur le forum, et internet en général, il me faut vous en poser la question.

Sur une distribution Ubuntu 14.04 LTS ; Comment puis-je produire un script qui agisse de façon a demander un ID, MPD, Groupe ( parmi ceux existant ) et qui ajoute bel et bien l'utilisateur ( je vérifie dans /etc/passwd ) tout en lui créant un répertoire dans /home en prenant pour copie un répertoire utilisateur déjà existant.

Je m'explique concernant la dernière partie : J'ai modifié le fichier /etc/addusr de manière a ce qu'il ne prenne non plus /etc/skel comme exemple lors de la création d'un utilisateur, mais le répertoire /home/skel qui est lui même la copie d'un utilisateur que j'ai crée pour définir des raccourci par défaut et auquel j'ai mit des restrictions.

Si vous me suivez jusque là c'est déjà pas mal.

J'ai trouvé quelque chose en fouillant cette discussion qui m'a renseigné sur le type de script que je devait produire mais aucun de ceux ci-présenté ne produise l'effet escompté ( Ajout du répertoire /home mais pas d'utilisateur ou vice versa ) Je précise que j'utiliserais ces utilisateur pour un serveur LTSP ( si cela a de l'importance ...).

J'espère avoir été le plus clair possible, car n'y connaissant pas grand chose dans la progra ce genre de script m'affole un peu.
Merci a l'avance.

Hors ligne

#2 Le 26/01/2015, à 15:58

popaul77

Re : Script d'ajout d'utilisateur

Bonjour

Tu peux regarder le script disponible ici comptix et l'adapter à tes variables

Attention il faut que gtkdialog et/ou dialog soient installés.
Tu crées une liste sur un fichier texte du genre
prénom.nom

exemple :
jean.loula
pierre.mariolle

Il faut avoir créée des classes avant de pouvoir créer les utilisateurs.

Suivant ton objectif tu devras de toute façon rentrer dans le code du script pour qu'il fasse ce que tu veux.
Ce script peut créer aussi un utilisateur isolé.
Création de : /home/user, groupe, lien vers classe, id samba, etc
Bref il faut lire le script pour le mettre a ta sauce.

Pour info l'utilisation sur serveur LTSP n'a aucune importance si ce n'est le nombre d'utilisateur a créer (pour mon cas jusqu’à 200).


Un linux sinon rien.
Installateur et administrateur de réseaux scolaires  Edubuntu 12.04 LTSP modifié.
http://www.popaul77.org

Hors ligne

#3 Le 26/01/2015, à 17:01

Achronium

Re : Script d'ajout d'utilisateur

Quand tu parles de "classes", quelles sont-elles ?

Le fichier texte en question sera donc la sauvegarde des ID ? Ou bien un fichier par lequel je les rajouterais ?

L'utilisateur isolé en question serait un utilisateur test ? je saisi mal le concept

HOME_CONFIG="/etc/majilux" GRP_COMMUN="commun" LOG="/tmp/comptix.log" ; export LOG if [ -z

Ici HOME_CONFIG doit être un répertoire de sauvegarde ? GRP_COMMUN un groupe dont tous les utilisateurs feront partie ? et enfin /tmp/comptix.log c'est là ou je dois replacer mon fichier ?

Merci de ta réponse.

Hors ligne

#4 Le 26/01/2015, à 17:38

popaul77

Re : Script d'ajout d'utilisateur

Re

1-Les classes sont celle qu'on trouve dans une école et aussi toutes celles que tu veux (classe est un groupe d'utilisateurs ayant un dossier classe commun)
ex: CM1 ou CE1 , les utilisateur a,b,c sont dans le groupe CM1 , ils ont accès a ce dossier (/home/classe/CM1/
2-Un fichier texte qui contiens tes utilisateurs qui servira au script pour créer ces utilisateurs.
3-Non l'utilisateur isolé dans ce script est un prof rattaché a une classe. Je ne met jamais (sauf exception 2 prof pour la même classe). on crée donc les profs avec le script pour qu'il aient le même groupe que la classe dont ils s'occupent.
4-HOME_CONFIG="/etc/majilux"  = chemin vers le fichier skell
5-GRP_COMMUN="commun" oui un groupe pour tous.
6-LOG="/tmp/comptix.log" = NON c'est le reour d'éxecution du script
7-Tu mets le fichier avec les noms ou tu veux et le script aussi.


Un linux sinon rien.
Installateur et administrateur de réseaux scolaires  Edubuntu 12.04 LTSP modifié.
http://www.popaul77.org

Hors ligne

#5 Le 26/01/2015, à 17:49

jplemoine

Re : Script d'ajout d'utilisateur

Je pense que ce que tu appelles classe est en fait un groupe. La classe existe mais c'est autre chose qui n'a rien à voir.
Il faut que tu fasses des groupes (d'utilisateurs) :
CM1_eleves
CM1_prof
CM2_eleves
CM2_prof
...
Si un prof a plusieurs classes, tu l'associes à plusieurs groupes.
Si une classe a plusieurs profs, il y aura plusieurs utilisateurs dans le groupe comme il y aura plusieurs élèves (utilisateurs) dans les groupes *_eleves (je conseille de ne pas mettre d'accent).

Ensuite, tu crées un script qui ira lire un fichier texte avec les informations (ça doit être possible en bash sinon en perl) :
id ? nom groupe1 groupe2...groupen


Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.

Hors ligne

#6 Le 28/01/2015, à 11:45

Achronium

Re : Script d'ajout d'utilisateur

Pour mon cas il s'agit d'un milieu professionnel donc ce sera plus des groupes tout ce qu'il y a de plus basique.
Les utilisateurs disposeront du même "professeur", donc je pense mettre cet administrateur de tout les groupe en plus de son groupe administrateur.

Concernant " comptix " :
-Qu'est-ce qu'un utilisateur Kuser (option 7)
-Comment pourrais-je modifier les lignes SKEL de façon a pouvoir utiliser les mienne ? Je crains des erreur si je le fait a la dure en indiquant un répertoire.
-Y a t-il un paquet a pré-installer pour utiliser ce genre d'interface ? Dès la ligne 12, soit la première non commenté, le script trouve des erreur avec [ -z et ] ... ou alors cela pourrait être juste une ligne qui s'est décalé ?

/usr/local/bin/ajuser.sh: ligne 12 : export: « [ » : identifiant non val
/usr/local/bin/ajuser.sh: ligne 12 : export: « -z » : identifiant non vae
/usr/local/bin/ajuser.sh: ligne 12 : export: « ] » : identifiant non val
/usr/local/bin/ajuser.sh: ligne 13: Erreur de syntaxe près du symbole inndu « then »
/usr/local/bin/ajuser.sh: ligne 13: `then'

EDIT :

Donc finalement les erreurs de mon fichier comptix étaient principalement dues au déplacement des espaces et des tabulations.
Il m'annonce cependant une erreur de "fin de fichier prématuré" à la ligne 400. J'ai 399 lignes.

Serais-ce une erreur de fin de script ou une erreur présente dans le script tout entier ?

Dernière modification par Achronium (Le 29/01/2015, à 13:09)

Hors ligne

#7 Le 03/02/2015, à 18:33

Achronium

Re : Script d'ajout d'utilisateur

Bonsoir,

Cette fois ci je pense avoir atteint mon but, j'ai finis par partir sur l'interface graphique zenity parceque ... Bref c'est zenity.
Après un long travail tout a fait exaspérant que voici :

menu () {
title="Gestionnaire des utilisateurs"

Display=:0.0
cmenu="$(/usr/bin/zenity --title="$title" \
                --width 640 --height 480 \
                --list --column="N° options" --column="Options disponnibles" \
                1 "Création d'un utilisateur" \
                2 "Changement d'un mot de passe utilisateur" \
                3 "Suppression d'un utilisateur" \
                4 "Changer le groupe d'un utilisateur" \
                5 "Désactiver un utilisateur" \
                6 "Désactiver un mot de passe utilisateur" \
                0 "Fermeture de l'utilitaire " )"

case $cmenu in
        "1|1") /usr/bin/zenity --info --text "Lancement de l'option 1" ;;
        "2|2") /usr/bin/zenity --info --text "Lancement de l'option 2" ;;
        "3|3") /usr/bin/zenity --info --text "Lancement de l'option 3" ;;
        "4|4") /usr/bin/zenity --info --text "Lancement de l'option 4" ;;
        "5|5") /usr/bin/zenity --info --text "Lancement de l'option 5" ;;
        "6|6") /usr/bin/zenity --info --text "Lancement de l'option 6" ;;
        "0|0") /usr/bin/zenity --info --text "Lancement de l'option 0" ;;
        *) /usr/bin/zenity --info --text "Fermeture de l'utilitaire de gestion" exit ;;
esac
}

menu
/usr/bin/zenity --info --text " echo $cmenu "

#|-|-|-|-|-|-|-|-|-|-|Fin de l'introduction|-|-|-|-|-|-|-|-|-|-|#

#|-|-|-|-|-|-|-|-|-|-|Ajout d'un ou plusieurs utilisateurs|-|-|-|-|-|-|-|-|-|-|#
# 1
add_user () {

choice="$(/usr/bin/zenity --title="$title" \
                --list --column="N° options" --column="Options disponnibles" \
                1 "Ajouter un utilisateur" \
                2 "Ajouter plusieurs utilisateurs" \
                9 "Retourner au menu principale" )"

case "$choice" in
        "1|1") name="$(/usr/bin/zenity --title="$title" --entry
        --text "Entrez la première lettre du prénom de l'utilisateur, suivis d'un point et de son nom de famille" )"
        /usr/bin/zenity --title="$title" --info
        --text " Le mot de passe de cet utilisateur sera le même que son identifiant, il devra changer son mot de passe a sa première connexion " \
        sudo adduser $name --disabled-login --force-badname --gecos
        sudo passwd $name $name
        groupe="$(name/usr/bin/zenity --title="$title"
        --list --column="Groupes Existants" \
        "Groupe 1" \ "Groupe 2" \ "Groupe 3" )"
        sudo addgroup $name $groupe
        sudo chmod -R 700 /home/$groupe/$name
        sudo chown -R $name /home/$groupe/$name
        sudo chgrp -R $groupe /home/$groupe/$name
        sudo edquota -p model $name
        /usr/bin/zenity --title="$title" --info
        --text "L'utilisateur a été ajouté à la base de donnée, retour au menu principale " \
        menu ;;
        "2|2")
        while [ $yesno != 1 ]
        do
        name="$(/usr/bin/zenity --title="$title" --entry
        --text "Entrez la première lettre du prénom de l'utilisateur, suivis d'un point et de son nom de famille" )"
        /usr/bin/zenity --title="$title" --info
        --text "Le mot de passe de cet utilisateur sera le même que son identifiant, il devra changer son mot de passe a sa première connexion \" \
        sudo adduser $name --disabled-login --force-badname --gecos
        sudo passwd $name $name
        groupe="$(name/usr/bin/zenity --title="$title"
         --list --column="Groupes Existants" \
        "Groupe 1" \ "Groupe 2" \ "Groupe 3" )"
        sudo addgroup $name $groupe
        sudo chmod -R 700 /home/$groupe/$name
        sudo chown -R $name /home/$groupe/$name
        sudo chgrp -R $groupe /home/$groupe/$name
        sudo edquota -p model $name
        /usr/bin/zenity
        yesno="$(--title="$title" --question
        --text "L'utilisateur a été ajouté a la base de donnée. Voulez vous continuer de rajouter des utilisateurs ?" )"
        case "$yesno" in
                0)/usr/bin/zenity --title="$title" --info
                --text " Ajout d'un nouvel utilisateur" ;;
                1)/usr/bin/zenity --title="$title" --info
                --text "Les utilisateurs ont étés ajoutés à la base de donnée, retour au menu principale " \
                menu ;;
        esac
        done
        "9|9")  /usr/bin/zenity --info -text "Retour au menu principale" \
        menu ;;
        *)  /usr/bin/zenity --info -text "Retour au menu principale" \
        menu ;;

esac
}
#|-|-|-|-|-|-|-|-|-|-|Fin d'ajout d' utilisateurs|-|-|-|-|-|-|-|-|-|-|#

#|-|-|-|-|-|-|-|-|-|-|Changement d'un mot de passe utilisateur|-|-|-|-|-|-|-|-|-|-|#
#2
change_passwd () {

choice="$(/usr/bin/zenity --title="$title" \
        --list --column="N° options" --column="Options disponnibles" \
        1 "Changer le mot de passe d'un utilisateur" \
        2 "Changer le mot de passe de plusieurs utilisateurs" \
        9 "Retourner au menu principale" )"

case "$choice" in
        "1|1")
        name="$(/usr/bin/zenity --title="$title" --entry
        --text "De quel utilisateur voulez vous changer le mot de passe ? Saisissez son identifiant." )"
        passwd="$(/usr/bin/zenity --title="$title" --entry
        --text "De quel utilisateur voulez vous changer le mot de passe ? Saisissez son identifiant." )"
        sudo passwd $passwd $name
        /usr/bin/zenity --title="$title" --info
        --text "La modification du mot de passe de l'utilisateur $name est effectué. Retour au menu principale" \
        menu ;;
        "2|2")
        while [ $yesno != 1 ]
        do
        name="$(/usr/bin/zenity --title="$title" --entry
        --text "De quel utilisateur voulez vous changer le mot de passe ? Saisissez son identifiant." )"
        passwd="$(/usr/bin/zenity --title="$title" --entry
        --text "De quel utilisateur voulez vous changer le mot de passe ? Saisissez son identifiant." )"
        sudo passwd $passwd $name
        yesno="$(/usr/bin/zenity --title="$title" --question
        --text "La modification du mot de passe de l'utilisateur $name est effectué. Voulez vous continuer a changer des mot de passe d'utilisateur ?" )"
        case "$yesno" in
                0) /usr/bin/zenity --title="$title" --info
                --text "Changement de mot passe d'un nouvel utilisateur" ;;
                1) /usr/bin/zenity --title="$title" --info
                --text "Les changements de mot de passe ont étés effectués, retour au menu principale" \
                menu ;;
        esac
        done ;;
        "9|9")  /usr/bin/zenity --info -text "Retour au menu principale" \
        menu ;;
        *)  /usr/bin/zenity --info -text "Retour au menu principale" \
        menu ;;
esac
}
#|-|-|-|-|-|-|-|-|-|-|Fin des changements de mot de passe|-|-|-|-|-|-|-|-|-|-|#

#|-|-|-|-|-|-|-|-|-|-|Suppression d'un utilisateur|-|-|-|-|-|-|-|-|-|-|#
#3
supp_user () {
while [ $secure != 1 ]
do
        choice="$(/usr/bin/zenity --title="$title" \
                --list --column="N° options" --column="Options disponnibles" \
                1 "Supprimez un utilisateur" \
                2 "Supprimer plusieurs utilisateurs" \
                9 "Retourner au menu principale" )"

case "$choice" in
        "1|1")
        name="$(/usr/bin/zenity --title="$title" --entry
        --text "Quel utilisateur voulez vous supprimez ? Saisissez son identifiant" )"
        secure="$(/usr/bin/zenity --title="$title" --question
        --text "Êtes-vous sur de supprimer cet identifiant d'utilisateur ? Aucun retour en arrière possible." )"
        case "$secure" in
                0) /usr/bin/zenity --title="$title" --info
                --text "Suppression de l'utilisateur $name effectué" \
                sudo deluser --remove-home $name
                menu ;;
                1) /usr/bin/zenity --title="$title" --info
                --text "Arret de la suppression. Retour au menu de supression" \ ;;
        esac
        menu ;;
        "2|2")
        while [ $yesno != 1 ]
        do
        name="$(/usr/bin/zenity --title="$title" --entry
        --text "Quel utilisateur voulez vous supprimez ? Saisissez son identifiant" )"
        secure="$(/usr/bin/zenity --title="$title" --question
        --text "Êtes-vous sur de supprimer cet identifiant d'utilisateur ? Aucun retour en arrière possible." )"
        case "$secure" in
                0)
                /usr/bin/zenity --title="$title" --info
                --text "Suppression de l'utilisateur $name effectué" \
                sudo deluser --remove-home $name
                yesno="$(/usr/bin/zenity --title="$title" --question
                --text "La suppression est effectué. Voulez-vous continuer a supprimer des comptes utlisateur ?" )"
                case "$yesno" in
                        0)
                        /usr/bin/zenity --title="$title" --info
                        --text "Suppression d'un nouveau compte utilisateur" ;;
                        1)
                        /usr/bin/zenity --title="$title" --info
                        --text "Arret de la suppression. Retour au menu principale" \
                        menu ;;
                esac ;;
                1)
                /usr/bin/zenity --title="$title" --info
                --text "Arret de la suppression. Retour au menu de supression" ;;
        esac
        done ;;
"9|9")
        /usr/bin/zenity --title="$title" --entry
        --text "Retour au menu principal" \
        menu ;;
        *)
        /usr/bin/zenity --title="$title" --entry
        --text "Retour au menu principal" \
        menu ;;
esac
done
}
#|-|-|-|-|-|-|-|-|-|-|Fin de suppression d'utilisateurs|-|-|-|-|-|-|-|-|-|-|#

#|-|-|-|-|-|-|-|-|-|-|Changement de groupe utilisateur|-|-|-|-|-|-|-|-|-|-|#
#4
change_groupe () {
        choice="$(/usr/bin/zenity --title="$title" \
                --list --column="N° options" --column="Options disponnibles" \
                1 "Changement du groupe d'un utilisateur" \
                2 "Changement du groupe de plusieurs utilisateurs" \
                9 "Retourner au menu principale" )"
case "$choix" in
        "1|1") while [ $secure != 1 ]
        do
        name="$(/usr/bin/zenity --title="$title" \ --entry
        --text " Veuillez saisir l'identifiant de l'utilisateur que vous souhaitez changer de groupe" )"
        groupe="$(/usr/bin/zenity --title="$title" \ --entry
        --text " Veuillez saisir le groupe de l'utilisateur dans lequel vous souhaitez le changer" )"
        secure="$(/usr/bin/zenity --title="$title" \ --question
        --text "Êtes-vous sur de changer le groupe de l'utilisateur $name dans le groupe $groupe ?")"
        case "$secure" in
                0)
                sudo addgroup $groupe $name
                /usr/bin/zenity --title="$title" \ --info
                --text "L'utilisateur $name est à présent dans le groupe $grouper" \
                menu ;;
                1)
                /usr/bin/zenity --title="$title" \ --info
                --text "Arret de la procedure" \ ;;
        esac
        done ;;
        "2|2") while [ $secure != 1 ] || [ $yesno != 1 ]
 do
        name="$(/usr/bin/zenity --title="$title" \ --entry
        --text " Veuillez saisir l'identifiant de l'utilisateur que vous souhaitez changer de groupe" )"
        groupe="$(/usr/bin/zenity --title="$title" \ --entry
        --text " Veuillez saisir le groupe de l'utilisateur dans lequel vous souhaitez le changer" )"
        secure="$(/usr/bin/zenity --title="$title" \ --question
        --text "Êtes-vous sur de changer le groupe de l'utilisateur $name dans le groupe $groupe ?")"
        case "$secure" in
                0)
                sudo addgroup $groupe $name
                yesno="$(/usr/bin/zenity --title="$title" \ --info
                --text "L'utilisateur $name est à présent dans le groupe $groupe. Voulez-vous continuer vos changements de groupe ?" )"
                case "$yesno" in
                        0)
                        /usr/bin/zenity --title="$title" \ --info
                        --text "Changement de groupe d'un nouveau compte utilisateur" ;;
                        1)
                        /usr/bin/zenity --title="$title" \ --info
                        --text " Arret de la proceure et retour au menu principale " \
                        menu ;;
                esac ;;
                1)
                /usr/bin/zenity --title="$title" \ --info
                --text "Retour au menu" \ ;;
        esac
        done ;;
        "9|9")
        /usr/bin/zenity --title="$title" --entry
        --text "Retour au menu principal" \
        menu ;;
        *)
        /usr/bin/zenity --title="$title" --entry
        --text "Retour au menu principal" \
        menu ;;
esac
}
#|-|-|-|-|-|-|-|-|-|-|Fin de changement de groupe utilisateur|-|-|-|-|-|-|-|-|-|-|#

#|-|-|-|-|-|-|-|-|-|-|Désctivation d'utilisateur|-|-|-|-|-|-|-|-|-|-|#
#5
lock_user () {
while [ $secure != 1 ]
do
        choice="$(/usr/bin/zenity --title="$title" \
                --list --column="N° options" --column="Options disponnibles" \
                1 "Verrouillage d'un utilisateur" \
                2 "Vertouillage de plusieurs utilisateurs" \
                9 "Retourner au menu principale" )"
case "$choice" in
        "1|1")
        name="$(/usr/bin/zenity --title="$title" --entry
        --text "Quel identifiant utilisateur voulez-vous verrouiller ?" )"
        secure="$(/usr/bin/zenity --title="$title" --question
        --text "Êtes-vous sur de verrouiller l'utilisateur $name ?" )"
        case "$secure" in
                0)
                sudo adduser --disabled-login $name
                /usr/bin/zenity --info
                --text "Le compte $name a été verrouiller" \
                menu ;;
                1)
                /usr/bin/zenity --info
                --text "Arret de la procédure" \
                menu ;;
        esac ;;
        "2|2")
 while [ $yesno != 1 ]
        do
        name="$(/usr/bin/zenity --title="$title" --entry
        --text "Quel identifiant utilisateur voulez-vous verrouiller ?" )"
        secure="$(/usr/bin/zenity --title="$title" --question
        --text "Êtes-vous sur de verrouiller l'utilisateur $name ?" )"
        case "$secure" in
                0)
                sudo adduser --disabled-login $name
                yesno="$(/usr/bin/zenity --title="$title" --question
                --text "Le compte $name a été verrouiller. Voulez-vous continuer de verouiller des comptes ?" )"
                case "$yesno" in
                        0)
                        /usr/bin/zenity --title="$title" --info
                        --text "Verrouillage d'un autre identifiant d'utilisateur" ;;
                        1)
                        /usr/bin/zenity --title="$title" --info
                        --text "Arret de la procédure et retour au menu principale " \
                        menu ;;
                esac ;;
                1)
                /usr/bin/zenity --info
                --text "Arret de la procédure" \
                menu ;;
        esac
        done ;;
        "9|9")
        /usr/bin/zenity --title="$title" --entry
        --text "Retour au menu principal" \
        menu ;;
        *)
        /usr/bin/zenity --title="$title" --entry
        --text "Retour au menu principal" \
        menu ;;
esac
done
}
#|-|-|-|-|-|-|-|-|-|-|Fin de désactivation d'utilisateur|-|-|-|-|-|-|-|-|-|-|#

#|-|-|-|-|-|-|-|-|-|-|Désactivation de mot de passe d'identifiant|-|-|-|-|-|-|-|-|-|-|#
loack_passwd () {
while [ $secure != 1 ]
do
        choice="$(/usr/bin/zenity --title="$title" \
                --list --column="N° options" --column="Options disponnibles" \
                1 "Verrouillage d'un mot de passe utilisateur" \
                2 "Vertouillage de plusieurs mots de passes utilisateurs" \
                9 "Retourner au menu principale" )"
case "$choice" in
        "1|1")
        name="$(/usr/bin/zenity --title="$title" --entry
        --text "De quel identifiant utilisateur voulez-vous verrouiller le mot de passe ?" )"
        secure="$(/usr/bin/zenity --title="$title" --question
        --text "Êtes-vous sur de verrouiller le mot de passe l'utilisateur $name ?" )"
        case "$secure" in
                0)
                sudo adduser --disabled-password $name
                /usr/bin/zenity --title="$title" --info
                --text "Le mot de passe du compte $name a été verrouiller" \
                menu ;;
                1)
                /usr/bin/zenity --title="$title" --info
                --text "Arret de la procédure" \
                menu ;;
        esac ;;
         "2|2")
        while [ $yesno != 1 ]
        do
        name="$(/usr/bin/zenity --title="$title" --entry
        --text "De quel identifiant utilisateur voulez-vous verrouiller le mot de passe ?" )"
        secure="$(/usr/bin/zenity --title="$title" --question
        --text "Êtes-vous sur de verrouiller le mot de passe de l'utilisateur $name ?" )"
        case "$secure" in
                0)
                sudo adduser --disabled-login $name
                yesno="$(/usr/bin/zenity --title="$title" --question
                --text "Le compte $name a été verrouiller. Voulez-vous continuer de verouiller des mots de passes utilisateurs ?" )"
                case "$yesno" in
                        0)
                        /usr/bin/zenity --title="$title" --info
                        --text "Verrouillage d'un autre mot de passe d'identifiant utilisateur" ;;
                        1)
                        /usr/bin/zenity --tile="$title" --info
                        --text "Arret de la procédure et retour au menu principale " \
                        menu ;;
                esac ;;
                1)
                /usr/bin/zenity --title="$title" --info
                --text "Arret de la procédure" \
                menu ;;
        esac
        done ;;
        "9|9")
 "9|9")
        /usr/bin/zenity --title="$title" --entry --text "Retour au menu principal" \
        menu ;;
        *)
        /usr/bin/zenity --title="$title" --entry --text "Retour au menu principal" \
        menu ;;
esac
done
}
#|-|-|-|-|-|-|-|-|-|-|Fin de désactivation de mot de passe d'identifiant|-|-|-|-|-|-|-|-|-|-|#

#|-|-|-|-|-|-|-|-|-|-|fonction de fermeture|-|-|-|-|-|-|-|-|-|-|#
#Fermeture
cmd_exit () {
yesno="$(/usr/bin/zenity --title="$title" --question
        --text "Voulez vous vraiment fermer l'utilitaire de gestion des utilisateurs ?" )"

case "$yesno" in
        0)
        /usr/bin/zenity --title="$title" --info
        --text "Au revoir !" ;;
        1)
        /usr/bin/zenity --title="$title" --info
        --text "Retour au menu principale" \
        menu ;;
esac
}
#|-|-|-|-|-|-|-|-|-|-|Fin de fonction de fermeture|-|-|-|-|-|-|-|-|-|-|#

#|-|-|-|-|-|-|-|-|-|-|Lancement des fonctions|-|-|-|-|-|-|-|-|-|-|#
#lanceur

lanceur () {

if ["$cmenu"-eq"1|1" ] ; then add_user
elif ["$cmenu"-eq"2|2" ] ; then change_passwd
elif ["$cmenu"-eq"3|3" ] ; then supp_user
elif ["$cmenu"-eq"4|4" ] ; then change_groupe
elif ["$cmenu"-eq"5|5" ] ; then lock_user
elif ["$cmenu"-eq"6|6" ] ; then lock_passwd
elif ["$cmenu"-eq"0|0" ] ; then cmd_exit
elif ["$cmenu"-eq"9|9" ] ; then menu
fi
}

lanceur

L'erreur qui apparait c'est "Fin de fichier prématuré"

Si certain parmi vous on le courage de trouver une erreur la dedans je les remercies chaudement, je suis incapable de me corriger moi même cette fois ci, je l'ai trop trituré ce script...

Hors ligne

#8 Le 27/05/2015, à 12:00

olnd

Re : Script d'ajout d'utilisateur

Bonjour Achronium,
L'année passée, avec un ami un peu plus calé que moi, nous avons rédigé un script de création de comptes pour ltsp.
Il crée un compte par élève, par enseignant, ainsi que des dossiers partagés pour les classes et pour l'école.
Des liens symboliques vers ces dossiers partagés sont placés sur les bureaux des utilisateurs (gnome).
Le fichier .sh se base sur des informations situées dans deux csv --> un pour les élèves, un pour les enseignants.
Il y a encore quelques limites (notamment pas de groupe "école" incluant tout le monde, et ça pose certains problèmes pour partager des fichiers dans le dossier école, il faut passer par des modifications de permission en mode graphique...). Quelques erreurs relevées par le terminal lors du lancement du script. Mais c'est tout de même tout à fait fonctionnel.
Si tu es toujours intéressé, je peux te transmettre le fichier bash, un modèle des csv et l'utilisation du script. Mais il me faudra un peu de temps pour commenter le script, qu'il soit un peu plus "lisible"...

Hors ligne