使用 LDAP 的主目录和 pam.d

使用 LDAP 的主目录和 pam.d

背景:
我不太熟悉配置方面的 pam 和 LDAP 身份验证的来龙去脉。我使用过使用 pam 的系统,但我只研究过应用程序,而不研究系统本身。

问题:
使用 pam 通过 LDAP 控制身份验证,这是否意味着系统上不会创建主目录?

如果没有,我是否会在服务器上创建用户或以某种方式将用户从 LDAP 源推送到系统?

答案1

这正是pam_mkhomedir我们设计的目的。如果用户的主目录不存在,
该模块可以在登录时创建该目录。pam_mkhomedir

如何安装它取决于您的发行版。但您需要将其放入一个或多个/etc/pam.d.
例如,在我的系统上,/etc/pam.d/system-login所有其他执行登录的服务(ssh、gdm 等)都包含该服务。
我会放入堆栈pam_mkhomedir.sosession,例如:

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

你把它放在哪里完全取决于堆栈中的其他内容。但您应该将其放在可能需要主目录的任何其他内容之前。

请参阅 参考资料了解man 8 pam_mkhomedir其支持的选项。

答案2

在 Ubuntu 14.04 中system-login不存在,但common-session存在另一个名为 as 的文件。

我去那里放了:

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

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

如果不存在,这将创建主目录,并将权限设置为700

答案3

我建议使用奇怪的工作 mkhomedir:

对于 Centos 7 这有效:

yum install oddjob-mkhomedir

将此附加到/etc/pam.d/system-auth/etc/pam.d/password-auth

session     optional      pam_oddjob_mkhomedir.so skel=/etc/skel

最后:

systemctl enable oddjob; systemctl start oddjob

这最初发布在这里:https://www.centos.org/forums/viewtopic.php?t=48631

注意:如果您刚刚安装了/home分区,请不要忘记执行以下操作restorecon /home

相关内容