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
|
#/usr/bin/perl
use strict;
my @TAB;
my @LISTE_ALL;
my @USER;
my @GRP;
my @REP;
# Ouverture du fichier list-fix-rep.txt
@TAB = open LISTE, "<e:/test/liste.txt"
or die "Erreur lors de la lecture du fichier : ($!)";
print "Donnees de \@TAB = @TAB\n";
while (<@TAB>) {
@LISTE_ALL = split /:/,@TAB;
print "Donnees du tableau \@LISTE_ALL : @LISTE_ALL\n";
@USER = @LISTE_ALL[0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51];
print "Donnees du tableau \@USER : @USER\n";
@GRP = @LISTE_ALL[1,4,7,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52];
print "Donnees du tableau \@GRP : @GRP\n";
@REP = @LISTE_ALL[2,5,8,11,14,17,20,23,26,29,32,35,38,41,44,47,50,53];
print "Donnees du tableau \@REP : @REP\n";
}
foreach (@LISTE_ALL) {
#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 @USER)
or die "l utilisateur n existe pas";
defined (my $groupe = getgrnam @GRP)
or die "le groupe specifie n existe pas";
print 'system "chmod 0755, @REP"\n';
print 'system "chgrp -R $groupe @REP"\n';
}
close LISTE; |
Partager