![为什么 SSSD 服务 override_homedir 会触发以错误的权限创建主目录?](https://linux22.com/image/1199559/%E4%B8%BA%E4%BB%80%E4%B9%88%20SSSD%20%E6%9C%8D%E5%8A%A1%20override_homedir%20%E4%BC%9A%E8%A7%A6%E5%8F%91%E4%BB%A5%E9%94%99%E8%AF%AF%E7%9A%84%E6%9D%83%E9%99%90%E5%88%9B%E5%BB%BA%E4%B8%BB%E7%9B%AE%E5%BD%95%EF%BC%9F.png)
我在 Ubuntu Jammy 服务器上安装了一个供应商应用程序,该应用程序依赖于为 LDAP 集成配置的 SSSD v2.6.3,以便在服务器中进行身份验证和创建用户主目录。
在 sssd.conf 配置中它存在:
[sssd]
config_file_version=2
reconnection_retries=3
services=nss,pam
domains=mydomain.com
[nss]
...
[pam]
...
[domain/mydomain.com]
... ldap configuration ...
override_homedir=/sfs/home/%u
当用户通过身份验证后,创建的主目录具有以下一组权限:
$ ls -lhtar /sfs/home
drwxr-xr-x 3 myuser mygroup 4.0K Jan 3 19:23 myuser
不幸的是,这些权限drwxr-xr-x
也允许其他人访问他们的主目录。
一开始我以为这是由 PAM 模块控制的,特别是common-session
执行pam_mkhomedir.so
模块,然而,这种情况并非如此!!!,因为注释该模块没有任何效果,并且主目录始终是完全空的,不遵循通常于 mkhomedir 中提供的主“骨架”例如session required pam_mkhomedir.so skel=/etc/skel/
。
我还注意到权限drwxr-xr-x
对应的 umask 022 通常是 Linux 发行版中的默认设置,所以我将其修改为 006,/etc/login.defs
并在 中添加 umask 006/etc/profile
以避免使用 022 umask,但是这次尝试也徒劳无功。
有没有人遇到过这个问题?当 SSSD 服务触发主目录创建时,如何强制正确的 umask?
提前谢谢您!
答案1
通常,pam_mkhomedir.so
在这种情况下会创建主目录,所以我仍然怀疑这是原因。默认设置pam_mkhomedir.so
确实会创建您报告的权限。来自pam_mkhomedir 手册页
umask=mask
The file mode creation mask is set to mask. The default value of mask is 0022. If this
option is not specified, then the permissions of created user home directory is set to
the value of HOME_MODE configuration item from /etc/login.defs. If there is no such
configuration item then the value is computed from the value of UMASK in the same
file. If there is no such configuration option either the default value of 0755 is
used for the mode.
我已将pam_mkhomedir.so
命令配置为使用不同的 umask。
sed -i -e "s/pam_mkhomedir.so$/pam_mkhomedir.so umask=0027/" /usr/share/pam-configs/mkhomedir
pam-auth-update --enable mkhomedir
还有一个已向 Ubuntu 提交 bug将默认参数更改为pam_mkhomedir.so
。这专门针对 Ubuntu 提出,因为 Ubuntu 为其“私人主目录”计划修补了其他工具。
链接
答案2
在这种情况下,问题实际上在于执行身份验证的供应商应用程序没有触发会话的 PAM 模块,对此供应商应用程序配置的修改允许身份验证过程调用我们为创建主目录设置的 PAM 会话配置。