Bonjour a tous, bon je commence par m'excuser parceque j'ai pas trouvé l'info sur le forum bien que je suis sur qu'elle y soit.
Bref je commence tout juste en perl et j'avous que ce language est vraiment formidable.
Donc voila je me suis donné la lourde tache de migrer tout les scripts de mon entreprise qui etaient en ksh / csh / sh en perl.
J'ai donc commencé par le plus simble mais je bloque déjà; je m'explique :
J'ai un fichier texte formater comme ce qui suit :
Je dois donc traiter ce fichier et forcer des permissions en fonction de ce fichier.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 user::group::rep user1::groupe1::rep1 .... usern::groupen::repn
Donc j'ai fait ca mais biensur ca ne marche pas :
bref en fait je bloque par par l'ecriture du code (bienque ...) mais surtout par la logique.
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 #/usr/bin/perl # Ouverture du fichier list-fix-rep.txt open LISTE, "</nas/install/blablabla/liste" or die "Erreur lors de la lecture du fichier : ($!)"; while (<LISTE>) { @GRP = ?? } #La fonction defined vérifie que la valeur de retour n'est pas undef, #valeur qui est renvoyé si l'user ou le groupe demandé n'existe pas #la fonction chown doit etre obligatoirement utilisé avec l'uid, pour contourner #le pb on utilise les fcts getpwnam et getgrnam qui retourn l'uid/gid defined (my $utilisateur = getpwnam "redac") or die "l utilisateur n existe pas"; defined (my $groupe = getgrnam "a0xao021") or die "le groupe specifie n existe pas"; chmod 0755, @LISTE_REP; print 'system "chgrp -R $groupe @LISTE_REP"\n'; close LISTE;
Si quelqu'un aurait l'amabilité de m'aider dje lui en serait reconnaisent
Partager