当用户首次登录时执行命令

当用户首次登录时执行命令

因此,我使用 webmin 创建 ldap 用户。然后,我手动创建 public_html 文件夹,并为新创建的主文件夹设置配额。有没有办法让我可以在用户首次登录时执行命令,或者有没有办法让我可以在通过 webmin 创建用户时自动设置配额并创建文件夹?

答案1

设置主目录常见的方法是在 /etc/skel 中设置新用户主目录的模板。

然后启用 PAM 模块 pam_mkhomedir,它将在用户第一次登录时为其创建主目录(如果尚不存在)。从手册页:

如果会话开始时用户主目录不存在,pam_mkhomedir PAM 模块将创建一个用户主目录。这样,用户就可以出现在中央数据库(如 NIS、kerberos 或 LDAP)中,而无需使用分布式文件系统或预先创建大量目录。骨架目录(通常为 /etc/skel/)用于复制默认文件,并为创建设置 umask。

pam_mkhomedir 模块的启用位置完全取决于您的发行版,但例如在 RHEL6 上,您将在文件中/etc/pam.d/system-auth添加一行

session     optional      pam_keyinit.so revoke
session     required      pam_limits.so
session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session     required    pam_mkhomedir.so skel=/etc/skel/ umask=0022
session     required      pam_unix.so

使用正确的模板目录(/etc/skel)和 umask。

配额设置配额取决于底层文件系统,IIRC 在 EXT [2-4] 文件系统上您必须为每个(新)用户明确设置配额,但 XFS 允许您为每个 XFS 文件系统上的每个唯一用户设置默认配额值。

pam_exec允许 pam 在用户每次登录时运行特定命令。您可以创建一个脚本(替代上述步骤),检查用户主目录是否存在,如果不存在则准备主目录、配置配额以及您想要设置的其他内容。

session required pam_unix.so
session required pam_exec.so /sbin/setup_newuser.sh $PAM_USER

答案2

  1. 您可以使用 .bash_profile 或 .bashrc 在用户主目录中执行命令。
    1. 要定制新用户的主目录,您需要修改 /etc/skel 下的框架。

使用 /etc/skel

答案3

我的答案不太像 webmin,但是由于自动化,它将在将来为您节省大量的点击工作。

您可以自动执行创建主目录和生成默认登录脚本的整个过程:

我给出的链接适用于 Ubuntu,但我相信对于其他主要发行版来说并没有太大区别。

相关内容