Ceci est une ancienne révision du document !


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

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/

  • Modification du /etc/nsswitch.conf

passwd:         compat extrausers
group:          compat extrausers
shadow:         compat extrausers
:!: 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>

docs/linuxeries/gestion_des_users.1320791475.txt.gz · Dernière modification: 2011/11/08 23:31 par adlp
Recent changes RSS feed Debian Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki