Authoriser la connexion aux users que si membre d'un groupe

Hello,

Soit un serveur distant, accessible via SSH. Je souhaite que puisse s’y connecter que les utilisateurs faisant parti d’un groupe qu’on appelera ldapuser (car je gère mes users à travers un arbre ldap).

Pour la partie ldap, je pense que c’est bon, un “getent group | grep ldapuser” me renvoi bien mes users du groupe ldapuser.

Pour l’histoire de la connexion par contre, je ne m’en sors pas, j’ai l’impression que c’est totalement aléatoire, je m’explique :

Les utilisateurs du groupe ldapuser peuvent se connecter sans problème, certains qui n’en font pas parti le peuvent aussi, si je rajoute un user toto dans le groupe ldapuser, il ne peut pas se connecter, bien que mon getent me confirme qu’il fait bien parti de ce groupe…

J’ai utilisé ce tuto pour faire tout ça.

Une chose me chagrine un peu, outre le problème de connexion : dans mon arbre, j’ai une partie “Group” (les groupes) et une partie People (contient les comptes users). Admettons que j’ajoute un utilisateur à mon groupe ldapuser. Il sera donc dans 2 groupes, son groupe d’origine (“toto”) et le groupe “ldapuser”. Dans mon arbre ldap, dans la partie Group, c’est clairement indiqué, par contre lorsqu’on va dans la partie compte utilisateur, j’ai un champ qui s’appele GID, qui correspond donc au GID de l’user, le problème, c’est qu’on ne peut en spécifier qu’un seul !
Ca ne me parait pas très propre… Côté “Group”, mon utilisateur apparait dans deux groupes différents, mais côté “People”, dans son profil, il n’y qu’un seul GID qui apparait… Pourtant le getent passwd renvoi les bonnes infos. C’est normal ?

sinon pour mon problème de base, quelqu’un a déjà mis ça en place ?

pour info, voici mes qqs fichiers de conf :

/etc/pam.d/common-auth:

[quote]account required pam_access.so
auth sufficient pam_unix.so nullok_secure
auth requisite pam_succeed_if.so uid >= 2000 quiet
auth sufficient pam_ldap.so use_first_pass
auth required pam_deny.so[/quote]

/etc/pam.d/common-password:

[quote]password sufficient pam_unix.so md5 obscure min=4 max=8 nullok try_first_pass
password sufficient pam_ldap.so
password required pam_deny.so[/quote]

/etc/pam.d/common-session:

[quote]session required pam_limits.so
session required pam_unix.so
session optional pam_ldap.so
session required pam_mkhomedir.so skel=/etc/skel/[/quote]

/etc/security/access.conf (j’ai remplacé login par ldapuser, je suis parti du principe qu’on peut mettre le groupe que l’on veut, tant que ça reste cohérent avec notre base ldap…)

[quote]# disallow all except people in the login group and root
-:ALL EXCEPT root ldapuser:ALL EXCEPT LOCAL[/quote]

Bon, j’ai très légèrement avancé…

J’ai fait quelques modifications :

  1. pam_ldap.conf est le même fichier que libnss_ldap.conf, j’ai donc fait ceci :

rm /etc/pam_ldap.conf ln -s /etc/libnss_ldap.conf /etc/pam_ldap.conf
ensuite le contenu est :

[quote]
host 10.0.10.10
base dc=lab3
uri ldapi:///10.0.10.10
ldap_version 3
rootbinddn cn=admin,dc=lab3
bind_policy soft
pam_login_attribute uid
pam_member_attribute gid[/quote]

  1. j’ai réglé un problème d’indexation lié aux gid, uid, etc… dans ldap.

sinon, getent passwd et getent group me renvoient tous mes users (ldap/nonldap) comme il faut, je pense qu’au niveau ldap c’est donc bon.

Je me rends compte d’un truc : mon système fonctionne, c’est à dire que la gestion des groupes est prise en compte, seulement elle ne se fait qu’au bout d’un certain temps (que je n’arrive pas à définir avec précision). Genre je mets un user dans un groupe autorisé à se connecter, sur le moment il ne se connecte pas, mais je repasse une heure après (par exemple) et là ça marche, idem pour un autre dont j’aurais retiré le droit.

J’ai cru comprendre qu’nscd avait une sorte de cache de 15 sec, mais pas de plusieurs dizaines de minutes…

Si quelqu’un passe par là…

quelqu’un ?

J’ai trouvé, c’est bien la cache de NSCD qui faisait des siennes… lorsque je désactive ce daemon, tout marche bien.

Merci… moi :wink: