18. 管理家目录

本节将解释如何配置 Autodir 以便按需创建用户家目录。为此目的,使用了autohome模块,该模块处理家目录创建的具体细节。

要使用 Autodir 加载autohome模块,请使用-m选项。例如,-m /usr/lib/autodir/autohome.so.

Note用户/家目录匹配
 

当应用程序尝试访问家目录时,该家目录用于检查是否有用户具有与正在访问的目录名称相同的用户名。如果用户名存在,则创建家目录。否则,将向应用程序报告 "没有该文件或目录" 消息。

Note用户帐户
 

Autohome不处理在本地系统、LDAP 或任何其他数据库上创建用户帐户。它仅处理在这些帐户存在并从 LDAP 和 NIS 等数据库导入到本地系统后创建家目录。

Important局限性
 

值得一提的是autohome模块的一个局限性。它期望用户名和家目录彼此相关。例如,对于用户user1家目录应该是/home/user1/some/directory/name/user1但不是/some/directory/name/userhome1。这可以支持,但这将成为系统资源的负担,因为必须从头到尾检查每个密码条目。

Note何时不应使用 autohome
 

如果现有的用户密码数据库使得用户家目录分布在不同的基本目录下,例如/home/class1/user1, /home/class2/user2332,那么autohome配置将变得复杂,不建议使用。

18.1. autohome 的基本目录

设置过程的下一步是决定用于家目录创建的虚拟基本目录真实基本目录的位置。

什么是 虚拟基本目录真实基本目录,在autohome模块的上下文中?

这一切都取决于如何创建用户帐户。如果为用户名 user1 创建的用户帐户的家目录是/home/user1那么/home 将成为虚拟基本目录.

那么什么是真实基本目录?这可以是任何目录。您唯一需要记住的是,应该有足够的空间,因为所有实际文件都存储在此处,而不是存储在虚拟基本目录中。

在大多数服务器配置中,/home/home/home是一个单独的分区。但是如果/home/home

虚拟基本目录,那么文件不会存储在该目录中!解决方案不是在/home上挂载分区,而是将其挂载在其他位置并使其成为真实基本目录Autodir 选项-d/home用于指定虚拟基本目录。例如

autodir -d /homeautohome假定/home虚拟基本目录指定真实基本目录有点棘手。真实基本目录模块管理,因此必须通过模块子选项将此选项传递给模块。如果真实基本目录/var/autohome.

,则使用选项

-o

autohome指定为-o realpath=/var/autohome18.2. 目录组织有关此主题的详细说明,请参阅 真实基本目录下的目录组织.

autohome

支持这种组织方式。用于指定所需目录组织的子选项是level子选项,例如-o level=2: 18.3. autohome 的其他子选项.

支持这种组织方式。用于指定所需目录组织的子选项是子选项skel指定真实基本目录有点棘手。真实基本目录可以在骨架路径不是默认值

/etc/skel

时使用

-o skel=/some/other/dirnoskel可以与

一起使用,以指示在创建家目录时不复制任何骨架文件到家目录。/home18.4. 示例/home首先,从集中式数据库导入您的用户帐户,例如从 LDAP。接下来,必须将autofs

内核模块加载到 Linux 内核中。这可以按照 autofs 内核模块部分 中所述完成。autohome如果/home将用于家目录,那么-m /usr/lib/autodir/autohome.so/home

将成为虚拟目录;这是通过-d /home选项指定给 autodir 的。假设模块位于/usr/lib/autodir/autohome.so.

,可以使用 autodir 加载此模块,如下所示

# autodir -d /home 						\
		-m /usr/lib/autodir/autohome.so 		\
		-o 'realpath=/autohome'			 	\

-m /usr/lib/autodir/autohome.so/home。请注意,给出了模块的完整路径。