Comptes ldap (3)

Niveau : Star Star Star Star Empty
Résumé : lib­map-ldap ; passwd ; chsh ; chfn ; addu­ser

Désolé, j’ai oublié la suite de la série LDAP. On peut faire un peu mieux que la der­nière fois.

Chan­ger son mot de passe

Nous n’avons pas activé le chan­ge­ment de mot de passe. Pour cela, c’est assez sim­ple, il suf­fit de modi­fier com­mon-pass­word (cela peut être ailleurs pour cer­tai­nes dis­tri­bu­tions …) :

password   sufficient   pam_unix.so nullok obscure min=4 max=8 md5
password   sufficient   pam_ldap.so

Il faut aussi modi­fier /etc/pam_ldap.conf pour que pam ne modi­fie pas direc­te­ment le mot de passe, mais uti­lise les fonc­tions de ldap pré­vues à cet effet. Cela per­met qu’il ne soit pas sto­cké en clair, mais avec la méthode défi­nie dans la con­fi­gu­ra­tion de ldap ({SSHA} par défaut).

# A ajouter dans /etc/pam_ldap.conf
pam_password exop

Et voilà vous pou­vez tes­ter la com­mande passwd. Mais vous cons­ta­te­rez qu’il y a quel­que chose qui clo­che. Si vous lan­cez la com­mande en root, l’ancien mot de passe vous est quand même demandé. C’est parce que vous n’avez pas les droits d’admi­nis­tra­teur sur le ldap.

Pour remé­dier à cela, il vous faut un compte ldap qui a le droit de modi­fier le champ pass­word des autres uti­li­sa­teurs, par exem­ple l’admi­nis­tra­teur ldap. Puis ren­sei­gnez ce compte dans pam_ldap.conf :

# /etc/pam_ldap.conf
# Il faudra stocker le mot de passe correspondant en clair dans /etc/pam_ldap.secret
# Ce fichier doit appartenir à root et être en mode 600
rootbinddn cn=admin,dc=linux-attitude,dc=fr

Ça y est vous êtes prêts.

chsh, chfn, addu­ser

Les uti­li­sa­teurs ont le droit de chan­ger leur shell ainsi que leurs infor­ma­tions per­son­nel­les. Pour cela ils ont les com­man­des chsh et chfn.

Mal­heu­reu­se­ment ces com­man­des mani­pu­lent /etc/passwd. Le paquet lib­pam-ldap four­nit des script pour rem­pla­cer ces com­man­des, mais ils sont un peu basi­ques et néces­si­tent lib­net-ldap-perl (Net::LDAP). Vous pou­vez vous baser des­sus pour faire les votres si vous pen­sez que ces fonc­tion­na­li­tés sont indis­pen­sa­bles pour vos uti­li­sa­teurs. On les trouve dans /usr/share/doc/lib­pam-ldap/exam­ples/ . un cer­tain nom­bre de para­mè­tres sont codés en dur et peu de véri­fi­ca­tions d’erreur sont fai­tes.

Si vous modi­fiez vos binai­res dans /usr/bin sur debian, fai­tes atten­tion la pro­chaine mise à jour ris­que de les rem­pla­cer. Pour évi­ter ce pro­blème, il existe la com­mande dpkg-divert :

# On fait croire aux paquets qu'ils installent /usr/bin/chfn alors qu'ils installent en réalité /usr/bin/chfn.old
$ dpkg-divert --add --rename --divert /usr/bin/chfn.old /usr/bin/chfn
# voila, vous pouvez maintenant remplacer /usr/bin/chfn

Autre pro­blème, addu­ser ne com­prend pas non plus le ldap. Ici le pro­blème est le même mais la solu­tion un peu meilleure. Un paquet ldaps­cripts est dis­po­ni­ble et il con­tient des com­man­des comme lda­pad­du­ser pour vous faci­li­ter la créa­tion d’uti­li­sa­teurs ldap. Les com­man­des sont con­fi­gu­rées dans /etc/ldaps­cripts/ .

Tout ceci pour­rait s’amé­lio­rer dans de pro­chai­nes ver­sions, un patch a l’air en cours de déve­lop­pe­ment pour le paquet sha­dow (qui con­tient ces outils) qui uti­li­se­rait la libnss pour effec­tuer ces actions. Les com­man­des fonc­tion­ne­raient donc direc­te­ment.

Quel­ques remar­ques

Depuis que nous avons des vrais comp­tes sys­tè­mes basés sur le ldap nous som­mes con­tents. Mais quel­ques peti­tes cho­ses tout de même :

  • Gar­dez le compte root sur le sys­tème, on ne sait jamais, si le ldap tombe, vous seriez bien embê­tés
  • Fai­tes atten­tions aux droits dans le ldap, ils impac­tent les fonc­tion­na­li­tés des com­man­des sys­tè­mes (droit de lis­ter les autres uti­li­sa­teurs par exem­ple)
  • Avec un ser­veur dis­tant, le ldap devient une forme de NIS
  • Vous pou­vez uti­li­sez la répli­ca­tion ldap pour résis­ter aux crash
  • Vous pou­vez tou­jours gar­der une mot de passe local au cas où le ldap ne mar­che pas (pam fait les 2)
  • Vous pou­vez vous con­nec­ter à un con­tro­leur de domaine win­dows
  • Si vous avez de pro­blè­mes les logs d’authen­ti­fi­ca­tion sont dans /var/log/auth.log
  • Vous pou­vez vou­loir ne met­tre en place que l’authen­ti­fi­ca­tion via pam et ne pas uti­li­ser libnss. Ce cas cor­res­pond à des uti­li­sa­teurs vir­tuels (comme pour le ftp) qui n’uti­li­se­ront pas alors de vrai compte sur le sys­tème.
Vus : 325
Publié par Peck : 100