因此,我使用 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
- 您可以使用 .bash_profile 或 .bashrc 在用户主目录中执行命令。
- 要定制新用户的主目录,您需要修改 /etc/skel 下的框架。
答案3
我的答案不太像 webmin,但是由于自动化,它将在将来为您节省大量的点击工作。
您可以自动执行创建主目录和生成默认登录脚本的整个过程:
- 针对 Ubuntu 的 LDAP 操作指南,涉及主文件夹的生成以及一些其他有用的配置问题。https://help.ubuntu.com/community/LDAPClientAuthentication#Automatically_create_home_folders
- 在目录 /etc/profile.d/ 中,您可以放置一个类似“login_script.sh”的脚本,该脚本将在每个用户每次登录后启动。
- 对于配额问题,请根据此处的手册调整 ubuntu 教程中建议的 mkhomedir 部分http://www.howtoforge.com/how-to-set-up-journaled-quota-on-debian-lenny
我给出的链接适用于 Ubuntu,但我相信对于其他主要发行版来说并没有太大区别。