本节介绍在您自己的环境中可能会遇到的一些最常见任务。其中包括针对每种情况的建议过程,以帮助您配置 autofs,从而最好地满足客户机的需要。要执行本节介绍的任务,请使用 Solaris Management Console 工具或参见《System Administration Guide: Naming and Directory Services (NIS+)》。
从 Solaris 10 发行版开始,还可以使用 /etc/default/autofs 文件来配置 autofs 环境。有关任务信息,请参阅使用 /etc/default/autofs 文件配置 autofs 环境。
下表提供了与 autofs 相关的许多任务的说明和链接。
表 5–5 Autofs 管理的任务列表
任务 |
说明 |
参考 |
---|---|---|
启动 autofs |
启动自动挂载服务而不必重新引导系统 | |
停止 autofs |
停止自动挂载服务而不禁用其他网络服务 | |
使用 /etc/default/autofs 文件配置 autofs 环境 |
为 /etc/default/autofs 文件中的关键字赋值 | |
使用 autofs 访问文件系统 |
使用自动挂载服务访问文件系统 | |
修改 autofs 映射 |
修改主映射的步骤,这些步骤应该用于列出其他映射 | |
修改间接映射的步骤,这些步骤应该用于大多数映射 | ||
修改直接映射的步骤,需要在客户机上的挂载点与服务器之间建立直接关联时应该使用这些步骤 | ||
修改 autofs 映射以访问非 NFS 文件系统 |
使用 CD-ROM 应用程序项设置 autofs 映射的步骤 | |
使用 PC-DOS 软盘项设置 autofs 映射的步骤 | ||
使用 autofs 访问 CacheFS 文件系统的步骤 | ||
使用 /home |
如何设置公用 /home 映射的示例 | |
设置引用多个文件系统的 /home 映射的步骤 | ||
使用新的 autofs 挂载点 |
设置与项目相关的 autofs 映射的步骤 | |
设置支持不同客户机体系结构的 autofs 映射的步骤 | ||
设置支持不同操作系统的 autofs 映射的步骤 | ||
使用 autofs 复制文件系统 |
提供对故障转移文件系统的访问 | |
在 autofs 中使用安全限制 |
限制对文件的远程 root 访问时提供对文件系统的访问 | |
在 autofs 中使用公共文件句柄 |
挂载文件系统时强制使用公共文件句柄 | |
在 autofs 中使用 NFS URL |
添加 NFS URL 以便自动挂载程序可以使用它 | |
禁用 autofs 浏览功能 |
在单台客户机上禁用浏览功能使得 autofs 挂载点不会自动装载的步骤 | |
在所有客户机上禁用浏览功能使得 autofs 挂载点不会自动装载的步骤 | ||
在客户机上禁用浏览功能使得特定 autofs 挂载点不会自动装载的步骤 |
从 Solaris 10 发行版开始,可以使用 /etc/default/autofs 文件来配置 autofs 环境。具体来说,此文件提供了另一种配置 autofs 命令和 autofs 守护进程的方法。在命令行上制定的规范也可以通过此配置文件实现。通过为关键字提供值,可以制定规范。有关更多信息,请参阅/etc/default/autofs 文件。
以下过程说明如何使用 /etc/default/autofs 文件。
成为超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
在 /etc/default/autofs 文件中添加或修改项。
例如,如果要关闭对所有 autofs 挂载点的浏览,可以添加以下行。
AUTOMOUNTD_NOBROWSE=ON |
此关键字与 automountd 的 -n 变量等效。有关关键字的列表,请参阅 /etc/default/autofs 文件。
重新启动 autofs 守护进程。
键入以下命令:
# svcadm restart system/filesystem/autofs |
下表介绍了管理 autofs 映射时需要注意的几个因素。选择的映射和名称服务将影响对 autofs 映射进行更改时需要使用的机制。
表 5–6 autofs 映射类型及其使用
映射类型 |
使用 |
---|---|
将目录与映射关联 |
|
将 autofs 定向至特定文件系统 |
|
将 autofs 定向至面向引用的文件系统 |
下表介绍了如何对基于名称服务的 autofs 环境进行更改。
表 5–7 映射维护
名称服务 |
方法 |
---|---|
本地文件 | |
NIS | |
NIS+ |
下表提示您何时运行 automount 命令,具体取决于对映射类型已做的修改。例如,如果已添加或删除了某个直接映射,则需要在本地系统上运行 automount 命令。通过运行该命令,可使更改生效。但是,如果已修改了现有项,则无需运行 automount 命令以使更改生效。
表 5–8 何时运行 automount 命令
映射类型 |
重新启动 automount? |
|
---|---|---|
|
添加或删除 |
修改 |
Y |
Y |
|
Y |
N |
|
N |
N |
以下过程要求使用 NIS+ 作为名称服务。
以具有更改映射权限的用户身份登录。
请参见《System Administration Guide: Naming and Directory Services (NIS+)》。
对于每台客户机,成为超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
通知用户所做的更改。
通知是必需的,以便用户还可以在其各自的计算机上以超级用户身份运行 automount 命令。请注意,只要运行 automount 命令,即会从主映射中收集信息。
以具有更改映射权限的用户身份登录。
请参见《System Administration Guide: Naming and Directory Services (NIS+)》。请注意,更改将在下次使用映射时(即下次执行挂载时)生效。
以具有更改映射权限的用户身份登录。
使用 nistbladm 命令,添加或删除对直接映射的更改。
请参见《System Administration Guide: Naming and Directory Services (NIS+)》。
通知用户所做的更改。
通知是必需的,以便用户还可以在其各自的计算机上以超级用户身份运行 automount 命令。
如果仅修改或更改现有直接映射项的内容,则无需运行 automount 命令。
例如,假定修改了 auto_direct 映射,以便从其他服务器挂载 /usr/src 目录。如果此时未挂载 /usr/src,则尝试访问 /usr/src 时新的项会立即生效。如果现在已挂载了 /usr/src,则可以等到进行自动取消挂载,然后再访问该文件。
请尽可能使用间接映射。间接映射更容易构造,并且对计算机文件系统的要求较少。另外,间接映射也不会像直接映射那样在挂载表中占用很多空间。
如果已在 /src 上挂载了本地磁盘分区并且计划使用 autofs 服务来挂载其他源目录,则可能会遇到问题。如果指定挂载点 /src,则只要尝试访问本地分区,NFS 服务便会隐藏该分区。
需要在其他某个位置(例如在 /export/src 上)挂载该分区。然后,需要在 /etc/vfstab 中添加如下项:
/dev/dsk/d0t3d0s5 /dev/rdsk/c0t3d0s5 /export/src ufs 3 yes - |
还需要在 auto_src 中添加此项:
terra terra:/export/src |
terra 是计算机的名称。
Autofs 还可以挂载 NFS 文件以外的其他文件。Autofs 会将文件挂载在可移除介质上,如软盘或 CD-ROM。通常,可使用卷管理器将文件挂载在可移除介质上。以下示例说明如何可以通过 autofs 完成此挂载。卷管理器和 autofs 不会同时运行,因此必须先停用卷管理器,然后才能使用这些项。
可以将介质放入驱动器并从映射中引用文件系统,而不要从服务器挂载文件系统。如果计划访问非 NFS 文件系统并且使用的是 autofs,请参见以下过程。
成为超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
更新 autofs 映射。
为 CD-ROM 文件系统添加如下项:
hsfs -fstype=hsfs,ro :/dev/sr0 |
成为超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
更新 autofs 映射。
pcfs -fstype=pcfs :/dev/diskette |
高速缓存文件系统 (cache file system, CacheFS) 是一种普通的非易失性高速缓存机制。CacheFS 利用小而快速的本地磁盘提高了某些文件系统的性能。例如,可以使用 CacheFS 提高 NFS 环境的性能。
CacheFS 在不同版本的 NFS 上的工作方式不同。例如,如果客户机和后台文件系统运行的是 NFS 版本 2 或版本 3,则文件将在前台文件系统中进行高速缓存以便客户机访问。但是,如果客户机和服务器运行的都是 NFS 版本 4,则其功能如下:当客户机最初请求访问 CacheFS 文件系统的文件时,请求将绕过前台的(即高速缓存的)文件系统,并直接访问后台文件系统。使用 NFS 版本 4 后,文件将不再在前台文件系统中进行高速缓存。后台文件系统将提供所有文件访问权。 另外,由于前台文件系统中没有高速缓存任何文件,因此特定于 CacheFS 的挂载选项(该选项旨在影响前台文件系统)会被忽略。特定于 CacheFS 的挂载选项不适用于后台文件系统。
第一次在系统上配置 NFS 版本 4 时,控制台上将出现一条警告,指出高速缓存不再起作用。
成为超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
# cfsadmin -c /var/cache |
将 cachefs 项添加到相应的自动挂载程序映射中。
/home auto_home -fstype=cachefs,cachedir=/var/cache,backfstype=nfs |
将此项添加到 auto_home 映射中仅会高速缓存名为 rich 的用户的起始目录:
rich -fstype=cachefs,cachedir=/var/cache,backfstype=nfs dragon:/export/home1/rich |
随后搜索的映射中包括的选项会覆盖之前搜索的映射中设置的选项。最后找到的选项即是使用的选项。在前面的示例中,如果某些选项需要更改,则向 auto_home 映射添加其他项时只需在主映射中包括这些选项即可。
可以采用多种方式设置自动挂载程序映射。以下任务给出了有关如何自定义自动挂载程序映射以提供易用目录结构的详细信息。
理想情况是,所有的网络用户均可以在 /home 下找到其各自的或任何人的起始目录。此视图应该在所有计算机(无论是客户机还是服务器)中是通用的。
每个 Solaris 安装都附带一个主映射: /etc/auto_master。
# Master map for autofs # +auto_master /net -hosts -nosuid,nobrowse /home auto_home -nobrowse |
另外,还会在 /etc 下安装 auto_home 的映射。
# Home directory map for autofs # +auto_home |
但对外部 auto_home 映射的引用除外,此映射为空。如果要使 /home 下的目录对于所有计算机通用,请勿修改此 /etc/auto_home 映射。所有的起始目录项都应出现在名称服务文件 NIS 或 NIS+ 中。
不应允许用户从其起始目录运行 setuid 可执行文件。如果没有此限制,则任何用户在任何计算机上都可具有超级用户权限。
成为超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
如果系统具有多个分区,请将这些分区安装在单独的目录下,例如 /export/home1 和 /export/home2。
使用 Solaris Management Console 工具创建并维护 auto_home 映射。
每次创建新的用户帐户时,请在 auto_home 映射中键入用户起始目录的位置。映射项可以非常简单,例如:
rusty dragon:/export/home1/& gwenda dragon:/export/home1/& charles sundog:/export/home2/& rich dragon:/export/home3/& |
请注意使用 &(和符号)替代映射关键字。和符号是以下示例中第二次出现的 rusty 的缩写。
rusty dragon:/export/home1/rusty |
如果提供了 auto_home 映射,则用户可以引用路径为 /home/user 的任何起始目录(包括其本身的起始目录)。user 是它们在映射中的登录名和关键字。登录到其他用户的计算机时,所有起始目录的此通用视图非常重要。Autofs 将为您挂载起始目录。同样,如果在其他计算机上运行远程窗口系统客户机,则该客户机程序具有与 /home 目录视图相同的视图。
此通用视图还将扩展到服务器。以前面的示例为例,如果 rusty 登录服务器 dragon,则 autofs 会通过将 /export/home1/rusty 回送挂载到 /home/rusty 上来提供对本地磁盘的直接访问。
用户无需知道其起始目录的实际位置。如果 rusty 需要更多磁盘空间,并且需要将其起始目录重新定位到其他服务器,则简单更改就足够了。只需更改 auto_home 映射中 rusty 的项,即可反映新的位置。其他用户可以继续使用 /home/rusty 路径。
假定您是某个大型软件开发项目的管理员。您计划在名为 /ws 的目录下提供所有与项目相关的文件。此目录将在站点上的所有工作站中通用。
向站点 auto_master 映射 NIS 或 NIS+ 添加 /ws 目录的项。
/ws auto_ws -nosuid |
auto_ws 映射可确定 /ws 目录的内容。
为防万一,添加 -nosuid 选项。
此选项可阻止用户运行任何工作区可能存在的 setuid 程序。
向 auto_ws 映射中添加项。
auto_ws 映射已经过组织,因此每项都能描述一个子项目。首次尝试添加时将生成如下映射:
compiler alpha:/export/ws/& windows alpha:/export/ws/& files bravo:/export/ws/& drivers alpha:/export/ws/& man bravo:/export/ws/& tools delta:/export/ws/& |
每项结尾的和符号 (&) 是指该项关键字的缩写。例如,第一项与以下内容等效:
compiler alpha:/export/ws/compiler |
首次尝试添加时会提供一个外观简单的映射,但该映射不适当。项目组织者决定应提供 man 项中的文档作为每个子项目下的子目录。另外,每个子项目都要求子目录描述该软件的多个版本。必须将其中的每个子目录都指定给服务器上的整个磁盘分区。
请按如下所示修改映射中的各项:
compiler \ /vers1.0 alpha:/export/ws/&/vers1.0 \ /vers2.0 bravo:/export/ws/&/vers2.0 \ /man bravo:/export/ws/&/man windows \ /vers1.0 alpha:/export/ws/&/vers1.0 \ /man bravo:/export/ws/&/man files \ /vers1.0 alpha:/export/ws/&/vers1.0 \ /vers2.0 bravo:/export/ws/&/vers2.0 \ /vers3.0 bravo:/export/ws/&/vers3.0 \ /man bravo:/export/ws/&/man drivers \ /vers1.0 alpha:/export/ws/&/vers1.0 \ /man bravo:/export/ws/&/man tools \ / delta:/export/ws/& |
尽管现在映射看起来比较大,但是映射仍然仅包含五个项。由于每项都包含多个挂载,因此每项都比较大。例如,对 /ws/compiler 的引用要求挂载 vers1.0、vers2.0 和 man 三个目录。每一行结尾的反斜杠通知 autofs 该项会继续进入下一行。实际上,尽管使用了换行符和一些缩进以使该项更具可读性,但该项仍是较长的一行。tools 目录包含所有子项目的软件开发工具,因此该目录不遵循相同的子目录结构。tools 目录仍然表示单个挂载。
这种安排为管理员提供了许多灵活性。软件项目通常会占用大量磁盘空间。在项目的整个生命周期内,可能需要重新定位并扩展各种磁盘分区。如果这些更改反映在 auto_ws 映射中,则无需通知用户,因为 /ws 下的目录分层结构未被更改。
由于服务器 alpha 和 bravo 查看的是同一个 autofs 映射,因此登录到这些计算机的任何用户都可以找到预期的 /ws 名称空间。系统将为这些用户提供通过回送挂载(而不是 NFS 挂载)对本地文件的直接访问。
您需要为本地可执行文件和应用程序(如电子表格应用程序和字处理软件包)汇编一个共享名称空间。此名称空间的客户机使用要求不同可执行文件格式的多个不同的工作站体系结构。另外,某些工作站运行的是不同发行版的操作系统。
使用 nistbladm 命令创建 auto_local 映射。
请参见《System Administration Guide: Naming and Directory Services (NIS+)》。
为共享名称空间选择单个站点特定名称。 此名称可使属于此空间的文件和目录易于识别。
例如,如果选择 /usr/local 作为名称,则路径 /usr/local/bin 显然属于此名称空间。
为使用户群易于识别,请创建 autofs 间接映射。在 /usr/local 中挂载此映射。在 NIS+(或 NIS)auto_master 映射中设置以下项:
/usr/local auto_local -ro |
请注意,-ro 挂载选项表明客户机不能对任何文件或目录执行写入操作。
在服务器上导出相应的目录。
在 auto_local 映射中包括 bin 项。
目录结构如下:
bin aa:/export/local/bin |
(可选的)要为不同体系结构的客户机提供服务,请通过添加 autofs CPU 变量来更改相应的项。
bin aa:/export/local/bin/$CPU |
对于 SPARC 客户机-将可执行文件放入 /export/local/bin/sparc 中。
对于 x86 客户机-将可执行文件放入 /export/local/bin/i386 中。
可以将 autofs OSREL 变量与 CPU 变量合并,以形成可同时确定 CPU 类型和 OS 发行版的名称。
创建以下映射项。
bin aa:/export/local/bin/$CPU$OSREL |
对于运行操作系统版本 5.6 的客户机,请导出以下文件系统:
对于 SPARC 客户机-导出 /export/local/bin/sparc5.6。
对于 x86 客户机-将可执行文件放入 /export/local/bin/i3865.6 中。
共享已复制的只读文件系统的最佳方法是使用故障转移。有关故障转移的说明,请参见客户端故障转移。
成为超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
修改 autofs 映射中的项。
bin aa,bb,cc,dd:/export/local/bin/$CPU |
Autofs 会选择距离最近的服务器。如果服务器具有多个网络接口,请列出每个接口。Autofs 会选择距离客户机最近的接口,从而避免路由不必要的 NFS 流量。
成为超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
在名称服务 auto_master 文件 NIS 或 NIS+ 中创建以下项:
/home auto_home -nosuid |
nosuid 选项可阻止用户创建设置了 setuid 或 setgid 位的文件。
此项将覆盖普通的本地 /etc/auto_master 文件中的 /home 的项。请参见前面的示例。由于对外部名称服务映射的 +auto_master 引用出现在该文件中的 /home 项之前,因此会发生覆盖。如果 auto_home 映射中的项包括挂载选项,则会覆写 nosuid 选项。因此,在 auto_home 映射中不应使用任何选项,或是每项都必须包括 nosuid 选项。
请勿在服务器的 /home 上下挂载起始目录磁盘分区。
成为超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
/usr/local -ro,public bee:/export/share/local |
public 选项会强制使用公共句柄。如果 NFS 服务器不支持公共文件句柄,则挂载将失败。
成为超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
/usr/local -ro nfs://bee/export/share/local |
服务会尝试在 NFS 服务器上使用公共文件句柄。但是,如果该服务器不支持公共文件句柄,则会使用 MOUNT 协议。
从 Solaris 2.6 发行版开始,安装的默认版本的 /etc/auto_master 会向 /home 和 /net 的项添加 -nobrowse 选项。此外,如果尚未修改 /etc/auto_master 中的 /home 和 /net 项,则升级过程还会向这些项中添加 -nobrowse 选项。但是,可能必须手动进行这些更改,或在安装后针对站点特定的 autofs 挂载点关闭浏览功能。
可以采用多种方式关闭浏览功能。使用 automountd 守护进程的命令行选项禁用该功能,此方式可针对客户机完全禁用 autofs 浏览功能;或者使用 NIS 或 NIS+ 名称空间中的 autofs 映射针对所有客户机上的每个映射项禁用浏览功能;另外,还可以在未使用网络范围名称空间的情况下使用本地 autofs 映射,针对每台客户机上的每个映射项禁用该功能。
在 NFS 客户机上成为超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
编辑 /etc/default/autofs 文件以包括以下关键字和值。
AUTOMOUNTD_NOBROWSE=TRUE |
重新启动 autofs 服务。
# svcadm restart system/filesystem/autofs |
要针对所有客户机禁用浏览功能,必须使用名称服务,如 NIS 或 NIS+。否则,需要手动编辑每台客户机上的自动挂载程序映射。在本示例中,/home 目录的浏览功能已禁用。必须对需要禁用的每个间接 autofs 节点遵照以下过程执行操作。
向名称服务 auto_master 文件中的 /home 项添加 -nobrowse 选项。
/home auto_home -nobrowse |
在所有客户机上运行 automount 命令。
在客户机系统上运行 automount 命令后或重新引导后,新的行为才会生效。
# /usr/sbin/automount |
在本示例中,/net 目录的浏览功能已禁用。对于 /home 或其他任何 autofs 挂载点可以使用同一过程。
检查 /etc/nsswitch.conf 中的 automount 项。
要使本地文件项具有较高的优先级,名称服务切换文件中的项应将 files 列在名称服务之前。例如:
automount: files nisplus |
此项会显示标准 Solaris 安装中的缺省配置。
检查 /etc/auto_master 中 +auto_master 项的位置。
除使本地文件优先于名称空间中的项以外,还必须将 +auto_master 项移至 /net 后面:
# Master map for automounter # /net -hosts -nosuid /home auto_home /xfn -xfn +auto_master |
标准配置会将 +auto_master 项置于文件的顶部。此放置方式可防止使用任何本地更改。
向 /etc/auto_master 文件中的 /net 项添加 nobrowse 选项。
/net -hosts -nosuid,nobrowse |
在所有客户机上运行 automount 命令。
在客户机系统上运行 automount 命令后或重新引导后,新的行为才会生效。
# /usr/sbin/automount |