如何在NFS服务器上自动创build目录?

我创build并configuration了3个虚拟机的testing环境:

  1. 提供krb5authentication的FreeIPA服务器
  2. 使用服务器1来保护自己的NFS服务器
  3. nfs服务器上自动安装主目录的客户端

问题是,当我添加一个用户到我的kerberos域(在这种情况下使用FreeIPA web界面),我仍然必须连接到文件服务器为用户创build一个主目录。 无可否认,这是一个简单的过程,但它增加了用户创build过程的复杂性,使我无法将任务委派给非技术人员,因为我必须授予他们访问文件服务器的权限。

我的第一个想法是创build一个cronjob,提取用户列表并创build失踪的家园。 问题在于,在创build帐户不工作的时间之后,这会造成麻烦。

TL; DR:在独立的NFS服务器上自动创build用户特定的目录(家)的最佳做法是什么?

这里有几种方法可以做到这一点,但我不愿意使用“最佳实践”这个词。

  1. Cron工作这将工作 – 我以前做过。 为什么不行? 使其在营业时间内定期运行,并警告新用户在X分钟后他们的账户将准备好使用。
  2. 正确地集中帐户pipe理创build一个使用IPA命令的脚本/接口,在安全pipe理服务器上添加主目录和其他任何东西(例如邮箱),而不是通过gui手动完成。 如果你有资源,这是我会build议的选项。
  3. 使用“第一次login”terminal创build一个专门的安全工作站(如果用户都很接近)或服务器,供用户第一次login,使用jordanm的设置自动创build一个主目录。

解决这个问题的一个办法是使用pam_mkhomedir在首次login系统时创build主目录。 手册页中的描述:

  The pam_mkhomedir PAM module will create a users home directory if it does not exist when the session begins. This allows users to be present in central database (such as NIS, kerberos or LDAP) without using a distributed file system or pre-creating a large number of directories. The skeleton directory (usually /etc/skel/) is used to copy default files and also sets a umask for the creation. 

manpage中的一个例子:

  A sample /etc/pam.d/login file: auth requisite pam_securetty.so auth sufficient pam_ldap.so auth required pam_unix.so auth required pam_nologin.so account sufficient pam_ldap.so account required pam_unix.so password required pam_unix.so session required pam_mkhomedir.so skel=/etc/skel/ umask=0022 session required pam_unix.so session optional pam_lastlog.so session optional pam_mail.so standard