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

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

我创建并配置了 3 个虚拟机的测试环境:

  1. 提供 krb5 身份验证的 FreeIPA 服务器
  2. NFS 服务器使用服务器 1 来保护自身安全
  3. 从 nfs 服务器自动挂载主目录的客户端

问题是,当我将用户添加到我的 kerberos 域时(在本例中使用 FreeIPA webinterface),我仍然必须连接到文件服务器来为用户创建主目录。诚然,这是一个简单的过程,但它增加了用户创建过程的复杂性,并且使我无法将任务委托给非技术人员,因为我必须授予他们访问文件服务器的权限。

我的第一个想法是创建一个 cronjob,用于获取用户列表并创建缺失的主页。问题是,这会导致创建后的一段时间内帐户无法使用,这必然会造成麻烦。

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

答案1

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

  1. 计划任务 这会起作用 - 我以前做过。为什么不起作用?让它在工作时间内定期运行,并警告新用户他们的帐户将在 X 分钟后可供使用。
  2. 适当集中账户管理 创建一个使用 IPA 命令的脚本/界面,在安全管理服务器上添加主目录和其他内容(例如邮箱),而不是通过 GUI 手动执行。如果您有资源,我会建议使用此选项。
  3. 使用“首次登录”终端 创建一个专用的安全工作站(如果用户都在近距离)或服务器,供用户首次登录,使用 jordanm 的设置自动创建主目录。

答案2

解决此问题的一个方法是pam_mkhomedir在首次登录系统时创建主目录。手册页中的描述:

   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.

来自手册页的一个例子:

  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

相关内容