Probleme avec script de gestion des users

Résolu/Fermé
nulenbash Messages postés 21 Date d'inscription dimanche 22 octobre 2006 Statut Membre Dernière intervention 18 décembre 2006 - 22 oct. 2006 à 23:11
nulenbash Messages postés 21 Date d'inscription dimanche 22 octobre 2006 Statut Membre Dernière intervention 18 décembre 2006 - 23 oct. 2006 à 20:42
Salut tout le monde, je doit rendre un devoir en bash unix : creer un fichier texte avec ligne : [nom prenom login] des users puis creer un script prenant en parametre : le nom du fichier, le repertoire des repertoires principaux des utilisateurs, le groupe des users, le mot de passe crypté.
Le script doit: verifier si le groupe existe et le creer si necessaire, creer les compte utilisateurs.
ce que j ai fait : verifier le nombre de parametre, demander au gars si il est d accord avec ce qui va etre fait de ses parametre, creer le groupe.

Probleme: pour creer les utilisateurs (useradd) il faut que je fasse une boucle (for?) et que j'aille chercher dans les lignes du fichier les noms des utilisateurs ....
nbligne= wc -l $1
i=0
testi= [ i -ne nbligne ]
while $testi
do
useradd !!!!!!!!!!! QUOIQUEJEFAIS !!!!!!!!!!!!!!!!!!!
i++
done

Je vous remercie d avance de bien vouloir me filer un coup de main
.
A voir également:

6 réponses

mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024 7 749
22 oct. 2006 à 23:51
Un peu de lecture pour les tests et les bouclesen shell :
http://www.c-sait.net/cours/scripts.php

Les fonctions qui vont te servir :
grep
xargs
useradd
addgroup
cut

Exemple : supposons que tu aies le fichier plop.txt contenant :
plop1
plop2
plop3

ou plop1...plop3 correspondent à 3 noms d'utilisateurs :
cat plop.txt | xargs useradd

Il faut que tu comprennes les "pipes" (si j'ose dire) et la fonction xargs,et tu verras que c'est facile. Un autre exemple : compter le nombre de ligne de chaque fichier se termnant par pp, à partir de la position courante :
find * | grep "pp$" | xargs wc -l

Le "pipe" correspond à l'opérateur "rond" en math (composition de fonction), et xargs consiste à faire une sorte de boucle for pour chaque ligne du flux de texte émis devant le '|'.

Bonne chance
0
nulenbash Messages postés 21 Date d'inscription dimanche 22 octobre 2006 Statut Membre Dernière intervention 18 décembre 2006
23 oct. 2006 à 00:36
salut mamiemando

je tourne sous windows pro et je n'est pas le moyen de tester mes scripts
peut tu me dire s'il est possible de telecharger un programme me permettant de faire ces test

je n'ai pas compris la commande xargs
j'ai été voir sur le site http://www.c-sait.net/cours/scripts.php
mais le site est assez peu explicatif / general
je voudrais des exemples de cas xargs


je te remercie de toute l'aide que tu pourrais m'apporter
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
23 oct. 2006 à 06:39
Salut,

l'équivalent de find * | grep "pp$" | xargs wc -l

peut être
find /repertoire -name '*pp' -exec wc -l {} \;
lami20j
0
mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024 7 749
23 oct. 2006 à 09:26
L'idée c'était de lui montrer les "pipes" si j'ose dire, car dans son cas c'est ce qu'il devra utiliser. Pour tester tes scripts, installe cygwin ou connecte toi à un serveur linux avec putty. Tu peux aussi utiliser un liveCD de knoppix et booter sur ce CD.

Pour les xargs je t'ai déjà donné deux exemples ! Si tu en veux d'autre, un petit coup de google et tu devrais trouver.

Bonne chance
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
23 oct. 2006 à 11:17
Salut,

L'idée c'était de lui montrer les "pipes" si j'ose dire,

Oui tu peux oser :-) et moi je n'ai rien dit.

lami20j
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
23 oct. 2006 à 10:07
Salut tout le monde,

Si l'on tient compte de ce qu'a dit "nulenbash" dans son 1er post, je cite :"creer un fichier texte avec ligne : [nom prenom login] des users"; perso je verrai davantage un truc du genre (attention ceci n'est qu'un exemple sensé montrer comment parser un fichier dans une boucle) :
 while read ligne ; do echo "$ligne" | cut -d: -f 3 ; done < fich.txt
ou "fich.txt" contiendrait les lignes suivantes :
nom1:prenom1:login1
nom2:prenom2:login2
nom3:prenom3:login3
nom4:prenom4:login4
Bien sur à adapter en fonction des besoins, nottament en traitant chaque ligne comme l'a suggéré "mamiemando" avec "xargs".

;-))
0
nulenbash Messages postés 21 Date d'inscription dimanche 22 octobre 2006 Statut Membre Dernière intervention 18 décembre 2006
23 oct. 2006 à 20:42
salut a tous
j ai toujours pas tester les commandes
j'ai essayez d'allez sur cygwin ou j'ai downloader le setup.exe et sa version nouvelle (maitenant) mais chaque fois ca ne fait rien quand je le lance en connexion directe su une url mirror.circ.fr ou cigwin.circ.fr et mir.zyrianes.net (les mirror de france) mais : erreur ligne 4841 do you have last setup

j'ai downloder putty mais probleme il veut pas connecter

je download knoppix mais yen a encore pour 1 heure

je vous remercie tous de vos interventions

ps : question subsidiaire : mon prof me demande aussi :"utiliser awk pout creer un script temporaire qui contient les commandes de creation"

quelqu'un peut il me traduire en langage courant "script temporaire..."

A+
0