使用 /etc/skel 和 pam 时的文件夹权限

使用 /etc/skel 和 pam 时的文件夹权限

我有一台绑定到 Active Directory 的 Red Hat 5.8 服务器,用户通过 sftp 登录时会通过 Active Directory 进行身份验证。登录期间会使用 /etc/pam.d/system-auth 创建用户主文件夹。创建主文件夹的具体行是

会话可选 pam_mkhomedir.so skel=/etc/skel/ umask=0066

这正确地为主文件夹赋予了 711 个权限,因此其他人都无法读取其目录。问题是,pam_mkhomedir.so 还会修改 /etc/skel 文件夹内所有文件夹/文件的权限,而我并不需要这些权限。有一个 public_html 文件夹(用于 apache),它需要具有 755 个权限,以便用户可以创建网页。

有没有办法让我 a) 阻止 pam_mkhomedir.so 递归更改所有文件权限,或者 b) 创建一个脚本,在复制 skel 后创建 public_html 文件夹并设置正确的权限?

答案1

我认为您不会希望阻止 mkhomedir.so 模块递归更改所有文件,因为 public_html 可能不是您骨架中唯一的文件夹/文件。但据我所知,该模块不允许非递归或从 umask 中排除其他特定目录。

您当然可以随后运行脚本来创建 public_html 目录,或者甚至只是使用 pam_exec.so 模块修改已创建的 public_html 目录的权限。请参阅:PAM:在 pam_mkhomedir 之前执行命令?

另一个想法是,您可以研究将其主文件/文件夹上的组更改为只有 Apache 可以访问的组,并将 umask 设置为 0026。这将使 Apache 组对用户的主目录具有完全访问权限,但不能访问系统上的其他用户。

答案2

“umask” 对用户创建的所有新文件均有效。pam_mkhomedir.so无法提供您想要的。

我在用addjobd-mkhomedir.conf

像这样改变线条mkhomedir -u 0077

然后只有主文件夹被设置为该权限。其他文件夹不受影响。

相关内容