当用户第一次login时执行命令

所以我用webmin来创buildldap用户。 然后我手动创buildpublic_html文件夹,并为新创build的主文件夹设置配额。 有没有办法让我可以执行命令,当用户第一次login或有一种方法,我可以自动设置配额和创build文件夹时,通过webmin创build用户?

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

与启用PAM模块pam_mkhomedir相比,它将在第一次login时为用户创build主目录(如果尚不存在)从手册页:

如果会话开始时不存在,则pam_mkhomedir PAM模块将创build一个用户主目录。 这允许用户在不使用分布式文件系统或预先创build大量目录的情况下出现在中央数据库(例如NIS,kerberos或LDAP)中。 骨架目录(通常是/ etc / skel /)用于复制默认文件,并为创build设置一个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。

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

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

 session required pam_unix.so session required pam_exec.so /sbin/setup_newuser.sh $PAM_USER 
  1. 您可以使用.bash_profile或.bashrc在用户主目录中执行命令。
    1. 要定制新的用户主目录,您需要修改/ etc / skel下的框架。

使用/ etc / skel

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

您可以自动完成创build主目录和生成默认login脚本的整个过程:

我给的链​​接是Ubuntu的,但我相信对于其他主要的发行版本,它并没有太大的不同。