Voici un exercice linux que j'ai pu faire mais j'ai des erreurs que je comprends pas trop. Aidez-moi svp.
ÉNONCE :
Créez un script réalisant les tâches suivantes à partir d’un fichier texte contenant des logins, groupes
et passwords séparés par des « ; » :
1. Sans options, le script affiche une aide donnant les options possibles.
2. L’option -f permet de préciser l’emplacement du fichier. Si l’option n’est pas utilisée, alors le
script utilise par défaut le fichier « listing.txt » se trouvant dans le même répertoire que le
script.
3. L’option -d permet de choisir un séparateur autre que le « ; ».
4. L’option -a permet d’ajouter de nouveaux logins/groupes/passwords dans le fichier. Ceux-ci
sont demandés à l’utilisateur et ajoutés en fin de fichier.
1. De plus, le script vérifie que les utilisateurs proposés ne soient pas déjà présents dans le
fichier. Auquel cas, il demande un autre nom d’utilisateur.
5. Avec l’option -e, le script crée les utilisateurs
1. avec comme groupe principal et comme mot de passe, ceux précisés dans le fichier
fourni.
6. Lorsque le script rencontre une erreur, la valeur de retour est 1. Sinon, elle vaut 0.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79 #!/bin/bash fichier="/root/listusers.txt" sep=";" recommencer=1 function adduser(){ while [ $recommencer -eq 1 ]; do read -p "Entrez votre utilisteur comme suit : user,pass,groupe : " user nom=$(echo $user | cut -d$sep -f1) recommencer=0 while read line do verifnom=$(echo $line | cut -d$sep -f1) echo "Nom à vérifier : $verifnom" echo "Nom passé en paramètre : $nom" if [ "$verifnom" = "$nom" ] then recommencer=1 echo "Erreur l'user est déjà dans la liste !" break fi done < $fichier if [ $recommencer -eq 0 ]; then echo "$user" >> $fichier fi done } function creerusers (){ while read line do name=$(echo $line | cut -d$sep -f1) pass=$(echo $line | cut -d$sep -f2) group=$(echo $line | cut -d$sep -f3) sudo groupadd $group sudo useradd $name -p "$pass" -g "$group" id $name done < $fichier } function aide (){ echo "Texte d'aide ici..." } if [ $# -ne 0 ]; then if [ -e "$fichier" ]; then while getopts "s:f:ac" options do case $options in s) sep=$OPTARG;; f) echo "Test" echo $OPTARG if [ -f $OPTARG ]; then fichier=$OPTARG else echo "Le fichier spécifié n'existe pas !" exit -1 fi;; a) adduser;; c) creerusers;; *) echo "Option $* inconnue !" esac done exit 0 else echo "Le fichier des users n'existe pas !" exit -1 fi else echo "Veuillez entrer au moins un argument !" aide exit -1 fi
Un grand MERCI d'avance
Partager