Forum Linux.général PAM et login shell ?

Posté par .
Tags : aucun
3
15
fév.
2012

Bonjour à tous,

Je me suis mis récemment en tête de centraliser les 15 .htaccess (un pour phpmyadmin, un pour SVN, etc.) qui se baladent sur mon serveur. En cadeau bonus, j’ai décidé de faire ça avec pam. J’ai donc maintenant de jolis "phpmyadmin" et "svn" dans /etc/pam.d qui contiennent (en gros)

@include common-auth
@include common-account

Maintenant, j’aimerais que nginx utilise PAM pour authentifier les utilisateurs. Aucun problème, il y a un module pour ça. J’ajoute donc dans ma configuration de ngnix, pour le virtual host correspondant, au pif, à phpmyadmin :

location / {
    auth_pam "phpmyadmin";
    auth_pam_service_name "phpmyadmin";
}

Sauf que… ça ne marche pas. Je me décide à débugger tout ça, et je finis par écrire un programme qui fait en gros ce que fait le module pam pour nginx.

Je le teste en tant que root, ça marche.

Je le teste en tant que mylogin, ça marche.

Je le teste en tant que www, ça ne marche pas :

Feb 15 15:40:26 localhost unix_chkpwd[29746]: check pass; user unknown
Feb 15 15:40:26 localhost unix_chkpwd[29746]: password check failed for user (mylogin)

Après quelques tests, il s’avère que si un utilisateur a comme shell /bin/false, unix_chkpwd. J’ai donc mis le shell de www à /bin/sh (gruik !), et ça marche.

Maintenant, une petite question pour vous (deux en fait) :

  • ce comportement est-il documenté quelque part ?
  • y a-t-il un moyen de le contourner, histoire de pouvoir remettre le shell de www à /bin/false ? (même si ça sert à rien)

[EDIT] Bon, en fait, ça ne marche pas non plus avec /bin/sh, mauvais diagnostic…

  • # des modules à installer à ngnix ?

    Posté par . Évalué à 2.

    je ne sais pas pour ngnix mais pour apache2 il faut des modules pour gerer pam ou ldap comme systeme d'identification.

    si ca se trouve avec ngnix y a aussi des plugins à configurer pour qu'il cause à pam.

  • # shadow saynul !

    Posté par . Évalué à 4.

    Bon, j’ai finalement réussi.

    Il s’avère que si le backend de pam est le fichier /etc/shadow, seuls root et l’utilisateur lui-même peuvent authentifier l’utilisateur. Du coup je me suis installé un petit pam_ldap, et ça roule !

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.