Edito
Voila voila, je refais mon infra…
Et j'ai donc envie de participer a une oeuvre commune :
Antoine.
Pub
Désolé de vous incommoder avec cela, c'est un mal aujourd'hui nécessaire. Je le souhaite juste utile, on verra.
Ceci est une ancienne révision du document !
Parmit les differentes methodes d'auth, j'ai porté mon choix sur une excessivement simple…
ln -s /usr/local/etc/passwd /var/lib/extrausers/ ln -s /usr/local/etc/group /var/lib/extrausers/ ln -s /usr/local/etc/shadow /var/lib/extrausers/
passwd: compat extrausers group: compat extrausers shadow: compat extrausers
Ceci est mon script qui me permet de mettre a jour les fichiers extras
Ils ne dupplique dans les fichiers en question que les users du groupe adlp-netuser, et pose les fichier dans /usr/local/etc/
: ce script doit etre refait en plus propre (NB ne pas travailler la tete dans le …)
</xtermrtf> #!/usr/bin/perl -w
use strict; use Data::Dumper;
my $group=“adlp-netuser”; my $rep=”/usr/local/etc/”; my $users; my $user; my $ligne; my $null; my ($gid,$grname);
my %bigtab; my $fichier; my $idtab;
open(FD,”getent group | grep \”^”.$group.”:\” |”); $ligne=<FD>; close(FD); chomp($ligne);
($null,$null,$null,$users)=split(/:/,$ligne);
foreach $user (split(/,/,$users)) {
# Recuperation du home'n Co
open(FD,"getent passwd | grep \"^".$user.":\" |");
$ligne=<FD>;
close(FD);
chomp($ligne);
$bigtab{passwd}{$ligne}="";
# Recuperation du pass
open(FD,"getent shadow | grep \"^".$user.":\" |");
$ligne=<FD>;
close(FD);
if(defined($ligne)) {
chomp($ligne);
$bigtab{shadow}{$ligne}="";
}
# Recuperation duid pr les groupes
open(FD,"id $user | cut -f4 -d'=' | ");
$ligne=<FD>;
close(FD);
chomp($ligne);
foreach (split(/,/,$ligne)) {
tr/\(\)/ /s;
($gid,$grname)=split(/ /);
$idtab=$grname.":x:".$gid.":";
if(defined($bigtab{group}{$idtab})) {
$bigtab{group}{$idtab}.=",".$user;
}
else {
$bigtab{group}{$idtab}=$user;
}
}
}
foreach $fichier (keys(%bigtab)) {
open(FD,">",$rep.$fichier);
foreach(keys(%{$bigtab{$fichier}})) {
if($bigtab{$fichier}{$_} eq "") {
print FD $_."\n";
}
else {
print FD $_.$bigtab{$fichier}{$_}."\n";
}
}
}
</xtermrtf>