当用户登录系统并且没有主目录时,我们想使用pam_mkhomedir创建用户的主目录。这是一种常见的做法。以下是 pam_mkhomedir 的简要说明:
如果会话开始时 pam_mkhomedir PAM 模块不存在,则 PAM 模块将创建用户主目录。这允许用户存在于中央数据库(例如 NIS、kerberos 或 LDAP)中,而无需使用分布式文件系统或预先创建大量目录。骨架目录(通常是/etc/skel/)用于复制默认文件,并为创建设置一个umask。
然而,这是一个运行 ZFS 的 FreeBSD 8.2 系统。我们需要先执行一个 ZFS 命令,因为我们希望每个用户有一个 ZFS 文件系统。pam_mkhomedir可以做一个mkdir,但我们需要做类似的事情zfs create /zpool/home/$USER。
有谁知道在用户的第一次登录会话期间是否可以使用 PAM 来执行命令?
有一个 PAM 模块被调用pam_exec- 如果您编写一个脚本来检查和/或创建 ZFS 卷,您可以将其链接到您现有的 PAM 规则中并保持良好状态,而无需假设交互式登录、默认 shell 和骨架目录等。对于例如,你可以有
session required pam_unix.so
session required pam_exec.so check_zfs.sh $PAM_USER
Run Code Online (Sandbox Code Playgroud)
或任何适合您的特定设置。
(正如汤姆肖在评论中指出的那样,拥有session required pam_mkhomedir.so是多余的。)
| 归档时间: |
|
| 查看次数: |
6506 次 |
| 最近记录: |