我在 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 模块,对此供应商应用程序配置的修改允许身份验证过程调用我们为创建主目录而设置的 PAM 会话配置。