在 Oracle® Solaris 11.2 中管理网络文件系统

退出打印视图

更新时间: 2014 年 7 月
 
 

Autofs 映射

    Autofs 使用三种类型的映射:

  • 主映射

  • 直接映射

  • 间接映射

Autofs 主映射

auto_master 映射将目录与映射相关联。该映射是指定 autofs 应检查的所有映射的主列表。以下示例显示了 auto_master 文件可包含的信息类型。

示例 2-1  /etc/auto_master 文件样例
# Master map for automounter 
# 
+auto_master 
/net            -hosts           -nosuid,nobrowse 
/home           auto_home        -nobrowse 
/nfs4           -fedfs           -ro,nosuid,nobrowse
/-              auto_direct      -ro  

本示例说明在常规 auto_master 文件中额外增加了 auto_direct 映射。主映射 /etc/auto_master 中的每一行都具有以下语法:

mount-point map-name [ mount-options ]

mount-point

目录的完整(绝对)路径名。如果目录不存在,则 autofs 将创建该目录(如果可能)。如果目录存在且不为空,则在该目录上挂载会隐藏该目录的内容。在这种情况下,autofs 将发出警告。

作为挂载点的表示法 /- 指示此特定映射是直接映射。该表示法还表示没有特定的挂载点与该映射关联。

map-name

映射名,autofs 用其查找位置指示或挂载信息。如果名称前面带有斜杠 (/),autofs 会将该名称解释为本地文件。否则,autofs 会使用在名称服务转换配置文件 (/etc/nsswitch.conf) 中指定的搜索项来搜索挂载信息。特殊映射还可用于 /net。有关更多信息,请参见挂载点 /net

mount-options

可选的以逗号分隔的选项列表,其中的选项适用于挂载 map-name 中指定的项,除非 map-name 中的项列出了其他选项。每种特定类型文件系统的选项都列在该文件系统的 mount 手册页中。有关特定于 NFS 的挂载选项的信息,请参见 mount_nfs(1M) 手册页。对于特定于 NFS 的挂载点,bg(后台)和 fg(前台)选项都不适用。

# 开头的行是注释。# 之后直到行尾的所有文本都将被忽略。

要将较长的行拆分为较短的行,请在行尾放置一个反斜杠 (\)。项的最大字符数为 1024。


注 -  如果在两个项中使用了同一挂载点,则 automount 命令会使用第一项。第二项将被忽略。
挂载点 /home

挂载点 /home/etc/auto_home(间接映射)中列出的项将要挂载到的目录。


注 -  缺省情况下,Autofs 可以在所有计算机上运行且支持 /net/home(自动挂载的起始目录)。您可以使用 NIS auto.master 映射中的项或通过本地编辑 /etc/auto_master 文件来覆盖这些缺省值。
挂载点 /net

Autofs 将在目录 /net 下挂载仅使用主机数据库的特殊内置映射 -hosts 中的所有项。假设计算机 system1 位于主机数据库中,且可以导出其任何文件系统。以下命令会将当前目录更改为计算机 gumbo 的根目录。

# cd /net/gumbo

Autofs 只能挂载主机 system1已导出的文件系统,即服务器上可供网络用户使用的文件系统,而不是本地磁盘上的文件系统。因此,system1 上的所有文件和目录可能无法通过 /net/system1 获得。

使用 /net 访问方法时,服务器名称位于路径中,且与位置相关。如果要将导出的文件系统从一台服务器移动到另一台服务器,则该路径可能无法再正常工作。应针对所需的文件系统在映射中特别设置一项,而不应使用 /net


注 -  使用 NFS 版本 3 和早期协议时,autofs 仅在挂载时检查服务器的导出列表。挂载服务器的文件系统之后,在自动取消挂载该服务器的文件系统之前,autofs 不会再次检查服务器。因此,只有在取消挂载客户机上的文件系统,然后重新挂载之后,才能“看到”新导出的文件系统。对于使用 NFS 版本 4 的系统,镜像挂载可反映对服务器上的导出文件系统的列表所做的任何动态更改。
挂载点 /nfs4

/nfs4 挂载点使用伪映射来挂载 FedFS 域根。对 /nfs4/example.net 文件的引用将导致尝试查找 DNS 域 example.net 的域根,然后将其挂载到该位置。在 /nfs4 下挂载路径要求 DNS 服务器返回一条记录,如设置 FedFS 服务器的 DNS 记录 中所述。

Autofs 直接映射

直接映射是自动挂载点。使用直接映射时,客户机上的挂载点与服务器上的目录之间存在直接关联。直接映射具有全路径名并显式表示这种关系。以下示例显示了典型的 /etc/auto_direct 映射:

/usr/local          -ro \
   /bin                   system1:/export/local/sun4 \
   /share                 system1:/export/local/share \
   /src                   system1:/export/local/src
/usr/man            -ro   system2:/usr/man \
                          system3:/usr/man \
                          system4:/usr/man 
/usr/games          -ro   system5:/usr/games 
/usr/spool/news     -ro   system6:/usr/spool/news \
                          system4:/var/spool/news 

直接映射中的行具有以下语法:

key [ mount-options ] location

key

直接映射中挂载点的路径名。

mount-options

要应用于该特定挂载的选项。仅当这些选项不同于映射缺省值时,才需要这些选项。每种特定类型文件系统的选项都列在该文件系统的 mount 手册页中。有关特定于 NFS 的挂载选项的信息,请参见 mount_nfs(1M) 手册页。

location

文件系统的位置。对于 NFS 文件系统,以 server:pathname 格式指定一个或多个文件系统。


注 -  路径名不应包括自动挂载的挂载点。路径名应该为文件系统的实际绝对路径。例如,起始目录的位置应列为 server:/export/home/username,而不是 server:/home/username

与主映射中相同,以 # 开头的行是注释。# 之后直到行尾的所有文本都将被忽略。要将较长的行拆分为较短的行,请在行尾放置一个反斜杠。

在所有的映射中,直接映射中的项与 /etc/vfstab 中相应的项最相似。/etc/vfstab 中可能存在如下所示的项:

dancer:/usr/local - /usr/local/tmp nfs - yes ro 

等效的项则以如下形式出现在直接映射中:

/usr/local/tmp     -ro     dancer:/usr/local

注 -  自动挂载程序映射之间不会出现任何选项关联。添加到自动挂载程序映射中的任何选项将覆盖以前搜索到的映射中列出的所有选项。例如,auto_master 映射中包含的选项将被任何其他映射中的相应项所覆盖。

有关 autofs 直接映射功能的信息,请参见Autofs 如何为客户机选择最近的只读文件(多个位置)

挂载点 /-

Example 2–1 中,挂载点 /- 通知 autofs 不要将 auto_direct 中的项与任何特定挂载点关联。间接映射使用在 auto_master 文件中定义的挂载点。直接映射使用在已命名映射中指定的挂载点。请注意,在直接映射中,关键字或挂载点是全路径名。

NIS auto_master 文件只能有一个直接映射项,因为挂载点在名称空间中必须是唯一值。作为本地文件的 auto_master 文件可以具有任意数目的直接映射项(如果这些项不重复)。

Autofs 间接映射

间接映射使用关键字的替代值在客户机上的挂载点与服务器上的目录之间建立关联。间接映射对于访问特定文件系统(如起始目录)非常有用。auto_home 映射便是间接映射。

间接映射中的行具有以下通用语法:

key [ mount-options ] location

key

间接映射中不带斜杠的名称。

mount-options

要应用于该特定挂载的选项。仅当这些选项不同于映射缺省值时,才需要这些选项。每种特定类型文件系统的选项都列在该文件系统的 mount 手册页中。例如,有关特定于 NFS 的挂载选项,请参见 mount_nfs(1M) 手册页。

location

文件系统的位置。以 server:pathname 形式指定一个或多个文件系统。


注 -  路径名不应包括自动挂载的挂载点。路径名应该为文件系统的实际绝对路径。例如,目录的位置应列为 server:/usr/local ,而不是 server:/net/ server/usr/local

与主映射中相同,以 # 开头的行是注释。# 之后直到行尾的所有文本都将被忽略。要将较长的行拆分为较短的行,请在行尾放置一个反斜杠 (\)。Example 2–1 显示了一个包含以下项的 auto_master 映射:

/home      auto_home        -nobrowse    

auto_home 是间接映射的名称,该映射包含要在 /home 下挂载的项。典型的 auto_home 映射将包含以下内容:

user1                  server1:/export/home/user1
user2                  server2:/export/home/user2
user3                  server3:/export/home/user3
user4                  server4:/export/home/user4
user5                  server5:/export/home/user5
user6                  server6:/export/home/user6
user7    -rw,nosuid    server7:/export/home/user7

例如,假设上面的映射位于主机 master-server 上。假设用户 user7 在口令数据库中有一项,该项将她的起始目录指定为 /home/user7。每当 user7 登录到计算机 master-server 时,autofs 都会挂载位于计算机 server7 上的目录 /export/home/user7。她的起始目录以读写方式结合 nosuid 选项进行挂载。

假设发生以下情况:用户 user7 的起始目录在口令数据库中列为 /home/user7。任何人(包括 user7)都可以从使用引用 auto_home 映射的主映射设置的任何计算机访问此路径。

在上述情况下,用户 user7 可以在其中的任何一台计算机上运行 loginrlogin,并且已为自己挂载了起始目录。

另外,现在 user7 还可以键入以下命令:

# cd ~user1

Autofs 将为 user7 挂载 user1 的起始目录(如果允许所有权限)。


注 -  自动挂载程序映射之间不会出现任何选项关联。添加到自动挂载程序映射中的任何选项将覆盖以前搜索到的映射中列出的所有选项。例如,将使用任何其他映射中对应的项来覆盖 auto_master 映射中包含的选项。

在没有名称服务的网络中,必须更改网络中所有系统上的所有相关文件(如 /etc/passwd)以允许 Linda 访问自己的文件。在运行 NIS 的网络中,应在 NIS 主服务器上进行更改并将相关的数据库传播到从属服务器。