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.
Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.
docs:linuxeries:gestion_des_users [2011/11/08 23:31] adlp |
— (version actuelle) | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== Choix d'auth ====== | ||
- | |||
- | Parmit les differentes methodes d'auth, j'ai porté mon choix sur une excessivement simple... | ||
- | |||
- | ===== Limites ===== | ||
- | * Pas de dependance d'un serveur tiers | ||
- | * Simplicite de mise en oeuvre | ||
- | * Simplicite de gestion | ||
- | |||
- | ===== Existant ===== | ||
- | * **LDAP** J'ai ete refroidit, tres refroidit | ||
- | * **MySQL** Tout comme le ldap, je ne veux pas appuyer mon auth sur un process | ||
- | * **Ecraser le /etc** Pas glop | ||
- | |||
- | ===== Choix ===== | ||
- | * libnss-extrausers => En gros ca permet de doubler les fichiers /etc/passwd, group'n co | ||
- | |||
- | ====== Mise en place ====== | ||
- | * Installation (comme d'hab) | ||
- | * Mise en place des liens symboliques | ||
- | <xtermrtf> | ||
- | 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/ | ||
- | </xtermrtf> | ||
- | * Modification du /etc/nsswitch.conf | ||
- | <xtermrtf> | ||
- | passwd: compat extrausers | ||
- | group: compat extrausers | ||
- | shadow: compat extrausers | ||
- | </xtermrtf> | ||
- | :!: Attention seules les id superieurs a 500 seront prises en compte !!! | ||
- | |||
- | ====== Outils ====== | ||
- | 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/** | ||
- | FIXME: 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> |