背景:
我不太熟悉配置方面的 pam 和 LDAP 身份验证的来龙去脉。我使用过使用 pam 的系统,但我只研究过应用程序,而不研究系统本身。
问题:
使用 pam 通过 LDAP 控制身份验证,这是否意味着系统上不会创建主目录?
如果没有,我是否会在服务器上创建用户或以某种方式将用户从 LDAP 源推送到系统?
答案1
这正是pam_mkhomedir
我们设计的目的。如果用户的主目录不存在,
该模块可以在登录时创建该目录。pam_mkhomedir
如何安装它取决于您的发行版。但您需要将其放入一个或多个/etc/pam.d
.
例如,在我的系统上,/etc/pam.d/system-login
所有其他执行登录的服务(ssh、gdm 等)都包含该服务。
我会放入堆栈pam_mkhomedir.so
中session
,例如:
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