Annuaires personnels et pam.d utilisant LDAP

10

Contexte:
Je ne connais pas trop les tenants et les aboutissants de l'authentification pam et LDAP côté configuration. J'ai utilisé des systèmes qui utilisent pam mais je n'ai travaillé que sur des applications, pas sur des systèmes eux-mêmes.

Questions: L'
utilisation de pam pour contrôler l'authentification via LDAP, cela signifie-t-il qu'un répertoire personnel ne sera pas créé sur le système?

Si ce n'est pas le cas, est-ce que je créerais des utilisateurs sur le serveur ou les pousserais en quelque sorte vers le système à partir d'une source LDAP?

Nicholas Anderson
la source
1
Cette question pourrait être liée: unix.stackexchange.com/q/106391/34796
drs

Réponses:

13

C'est exactement pam_mkhomedirpour cela.
Le pam_mkhomedirmodule peut créer le répertoire personnel de l'utilisateur lors de la connexion si ce répertoire n'existe pas.

Comment l'installer dépend de votre distribution. Mais vous devrez le mettre dans un ou plusieurs fichiers /etc/pam.d.
Par exemple, sur mon système que j'ai, /etc/pam.d/system-loginqui est inclus par tous les autres services qui effectuent la connexion (ssh, gdm, etc.).
Je mettrais pam_mkhomedir.sodans la sessionpile, comme:

session     optional    pam_loginuid.so
session     required    pam_env.so 
session     optional    pam_lastlog.so 
session     include     system-auth
session     optional    pam_mkhomedir.so # <<< right here
session     optional    pam_ck_connector.so nox11
session     optional    pam_gnome_keyring.so auto_start
session     optional    pam_motd.so motd=/etc/motd

L'endroit où vous le mettez dépend entièrement de ce qu'il y a d'autre dans la pile. Mais vous devez le mettre avant toute autre chose qui pourrait avoir besoin du répertoire personnel.

Voir man 8 pam_mkhomedirpour les options qu'il prend en charge.

Patrick
la source
Impressionnant. Merci d'avoir répondu. Actuellement, nos utilisateurs ne se connectent pas au système, ils se connectent à une application Web hébergée sur le système. Existe-t-il un déclencheur qui peut créer son répertoire personnel lors d'une première connexion à l'application Web?
Nicholas Anderson
1
Si l'application Web utilise la pile pam, cela fonctionnerait (bien que vous deviez la mettre dans la authpile au lieu de session). Si l'application n'utilise pas la pile pam, vous devrez alors créer quelque chose dans l'application elle-même.
Patrick
Il semble que seul le module de session soit fourni, j'ai essayé et, en fait, pam_mkhomedir ne fonctionne pas avec le module d'authentification. J'ai le même problème que Nicholas Anderson, j'ai une application web. Existe-t-il un moyen de résoudre ce problème dans le module d'authentification?
Fabiano Tarlao
6

Dans Ubuntu 14.04 system-loginn'est pas présent, mais un autre fichier nommé as common-sessionest présent.

J'y suis allé et j'ai mis:

root@GW:~# vim /etc/pam.d/common-session

#
session optional        pam_systemd.so skel=/etc/skel/ umask=0077

Cela créera un répertoire personnel s'il n'en existe pas, définissez également l'autorisation sur 700

Mansur Ali
la source
Le umask suggéré par help.ubuntu.com/community/LDAPClientAuthentication est umask=0022. Je crois que la vôtre supprime TOUTES les capacités, y compris celles readqui peuvent empêcher certains mécanismes d'authentification / de confiance basés sur des clés de fonctionner dans un système multi-utilisateurs ou dans d'autres cas.
dragon788
0

Je recommanderais d'utiliser oddjob-mkhomedir :

Pour Centos 7, cela fonctionne:

yum install oddjob-mkhomedir

Ajoutez ceci à /etc/pam.d/system-authet /etc/pam.d/password-auth:

session     optional      pam_oddjob_mkhomedir.so skel=/etc/skel

Et enfin:

systemctl enable oddjob; systemctl start oddjob

Cela a été publié à l'origine ici: https://www.centos.org/forums/viewtopic.php?t=48631

Remarque: Si vous venez de monter votre /homepartition, n'oubliez pas de le fairerestorecon /home

mejem
la source