跳过导航链接 | |
退出打印视图 | |
在 Oracle Solaris 11.1 中管理网络文件系统 Oracle Solaris 11.1 Information Library (简体中文) |
必须以 root 身份运行这些命令才能使其完全生效,但所有用户都可以发出信息请求:
此外,与 FedFS 服务关联的命令在FedFS 命令中作了介绍。
此命令安装 autofs 挂载点,并将 automaster 文件中的信息与每个挂载点相关联。该命令的语法如下:
automount [ -t duration ] [ -v ]
-t duration 用于设置文件系统持续处于挂载状态的时间(以秒为单位),而 -v 用于选择详细模式。在详细模式下运行此命令可以更容易排除故障。
如果未明确地进行设置,则持续时间值将设置为 5 分钟。在多数情况下,该值是合适的。但是,在具有许多自动挂载文件系统的系统上,可能需要增大持续时间值。特别是,如果服务器具有许多活动用户,则每 5 分钟检查一次自动挂载文件系统可能效率不高。每 1800 秒(即 30 分钟)检查一次 autofs 文件系统可能更理想。如果没有每 5 分钟进行一次取消挂载文件系统,/etc/mnttab 就会变得很大。要减少 df 检查 /etc/mnttab 中每一项时的输出,可以使用 -F 选项(请参见 df(1M) 手册页)或使用 egrep 来过滤 df 的输出。
您应该考虑到,调整持续时间还会更改反映对自动挂载程序映射所做更改的速度。取消挂载文件系统之前,无法查看更改。有关如何修改自动挂载程序映射的说明,请参阅修改映射。
在命令行上执行的指定也可以使用 sharectl 命令实现。但是,与命令行选项不同,SMF 系统信息库将保留您的指定,即使在服务重新启动时、系统重新引导时,以及系统升级时也是如此。以下是可以为 automount 命令设置的参数。
设置在取消挂载文件系统之前文件系统保持空闲的持续时间。此关键字与 automount 命令的 -t 参数等效。缺省值为 600。
提供有关 autofs 挂载、取消挂载和其他不重要事件的通知。此关键字与 automount 的 -v 参数等效。缺省值为 FALSE。
通过此命令,可以删除 NFS 客户机的所有文件、记录和共享锁定。您必须是 root 才能运行此命令。从 NFS 服务器,可以清除对特定客户机的锁定。从 NFS 客户机,可以清除特定服务器上对该客户机的锁定。以下示例将清除对当前系统上名为 tulip 的 NFS 客户机的锁定。
# clear_locks tulip
使用 -s 选项可以指定要从中清除锁定的 NFS 主机。必须从创建锁定的 NFS 客户机运行此选项。在这种情况下,将从名为 bee 的 NFS 服务器中删除客户机锁定。
# clear_locks -s bee
注意 - 只有在客户机崩溃且无法清除其锁定时,才应运行此命令。为避免数据损坏问题,请不要清除对活动客户机的锁定。 |
使用 fsstat 实用程序可以按文件系统类型和按挂载点监视文件系统操作。可以使用各种选项定制输出。请参见以下示例。
本示例显示 NFS 版本 3、版本 4 和 root 挂载点的输出。
% fsstat nfs3 nfs4 / new name name attr attr lookup rddir read read write write file remov chng get set ops ops ops bytes ops bytes 3.81K 90 3.65K 5.89M 11.9K 35.5M 26.6K 109K 118M 35.0K 8.16G nfs3 759 503 457 93.6K 1.44K 454K 8.82K 65.4K 827M 292 223K nfs4 25.2K 18.1K 1.12K 54.7M 1017 259M 1.76M 22.4M 20.1G 1.43M 3.77G /
本示例使用 -i 选项提供有关 NFS 版本 3、版本 4 和 root 挂载点的 I/O 操作的统计信息。
% fsstat -i nfs3 nfs4 / read read write write rddir rddir rwlock rwulock ops bytes ops bytes ops bytes ops ops 109K 118M 35.0K 8.16G 26.6K 4.45M 170K 170K nfs3 65.4K 827M 292 223K 8.82K 2.62M 74.1K 74.1K nfs4 22.4M 20.1G 1.43M 3.77G 1.76M 3.29G 25.5M 25.5M /
本示例使用 -n 选项提供有关 NFS 版本 3、版本 4 和 root 挂载点的命名操作的统计信息。
% fsstat -n nfs3 nfs4 / lookup creat remov link renam mkdir rmdir rddir symlnk rdlnk 35.5M 3.79K 90 2 3.64K 5 0 26.6K 11 136K nfs3 454K 403 503 0 101 0 0 8.82K 356 1.20K nfs4 259M 25.2K 18.1K 114 1017 10 2 1.76M 12 8.23M /
有关更多信息,请参见 fsstat(1M) 手册页。
使用此命令,可以将已命名的文件系统(本地或远程)附加到指定的挂载点。有关更多信息,请参见 mount(1M) 手册页。在不使用参数的情况下,mount 将显示当前在计算机上挂载的文件系统列表。
标准 Oracle Solaris 安装中包括许多类型的文件系统。每个文件系统类型都有特定的手册页,其中列出了适用于该文件系统类型的 mount 选项。NFS 文件系统的手册页为 mount_nfs(1M)。对于 UFS 文件系统,请参见 mount_ufs(1M)。
Solaris 7 发行版可以使用 NFS URL(而不是标准的 server:/pathname 语法)从 NFS 服务器选择要挂载的路径名。有关详细信息,请参见如何使用 NFS URL 挂载 NFS 文件系统。
注意 - 该 mount 命令版本不会对无效选项发出警告。该命令将默认忽略所有无法解释的选项。请确保验证所有已使用的选项,以防止出现意外行为。 |
以下内容列出了挂载 NFS 文件系统时可跟在 -o 标志后面的某些选项。有关完整的选项列表,请参阅 mount_nfs(1M) 手册页。
可以使用这些选项来选择挂载失败时的重试行为。bg 选项将导致挂载尝试在后台运行。fg 选项将导致挂载尝试在前台运行。缺省值为 fg,对于必须可用的文件系统而言,这是最佳选择。此选项可防止在挂载完成之前进行进一步处理。对于非关键文件系统,bg 是适合的选择,因为客户机在等待挂载请求完成的同时可以执行其他处理。
此选项可改进大型连续数据传输的性能。数据将直接复制到用户缓冲区。不会在客户机的内核中执行任何缓存操作。缺省情况下,此选项处于关闭状态。
以前,所有写入请求都由 NFS 客户机和 NFS 服务器进行串行化。NFS 客户机已被修改,允许应用程序向单个文件发出并发写入以及并发读取和写入。您可以使用 forcedirectio 挂载选项在客户机上启用此功能。使用此选项时,您将为已挂载文件系统中的所有文件启用此功能。您还可以通过使用 directio() 接口在客户机的单个文件中启用此功能。除非启用了此功能,否则对文件的写入一定是串行化的。而且,如果正在进行并发写入或并发读取和写入,该文件将不再支持 POSIX 语义。
有关如何使用此选项的示例,请参阅使用 mount 命令。
使用此选项,可以访问大于 2 GB 的文件。由于只能在服务器上控制是否可以访问大文件,因此在 NFS 版本 3 挂载中将默认忽略此选项。缺省情况下,所有的 UFS 文件系统都使用 largefiles 进行挂载。对于使用 NFS 版本 2 协议的挂载,largefiles 选项将导致挂载失败,且会出现错误。
此选项用于 UFS 挂载,可以保证文件系统中不会存在大文件。请参见 mount_ufs(1M) 手册页。由于只能在 NFS 服务器上控制大文件的存在,因此使用 NFS 挂载时不存在用于 nolargefiles 的选项。系统将拒绝使用此选项尝试对文件系统进行 NFS 挂载,且会显示错误。
nosuid 选项与指定 nodevices 选项和 nosetuid 选项等效。指定 nodevices 选项时,禁止在已挂载的文件系统上打开特定于设备的文件。指定 nosetuid 选项时,系统将忽略位于文件系统中的二进制文件的 setuid 位和 setgid 位。进程将使用执行该二进制文件的用户的权限运行。
suid 选项与指定 devices 选项和 setuid 选项等效。指定 devices 选项时,允许在已挂载的文件系统上打开特定于设备的文件。指定 setuid 选项时,内核将接受位于文件系统中的二进制文件的 setuid 位和 setgid 位。
如果这两个选项都没有指定,则缺省选项为 suid,这将提供指定 devices 选项和 setuid 选项这一缺省行为。
下表介绍了将 nosuid 或 suid 与 devices 或 nodevices,以及 setuid 或 nosetuid 组合的效果。请注意,在每个选项组合中,限制性最强的选项将确定行为。
|
nosuid 选项为访问可能不可信服务器的 NFS 客户机提供了附加安全性。使用此选项挂载远程文件系统会减少通过导入不可信设备或导入不可信 setuid 二进制文件来升级特权的机会。所有这些选项在所有的 Oracle Solaris 文件系统中都是可用的。
与 NFS 服务器联系时,此选项将强制使用公共文件句柄。如果服务器支持公共文件句柄,则由于不使用 MOUNT 协议,挂载操作会比较快。此外,由于不使用 MOUNT 协议,公共选项允许穿过防火墙进行挂载。
-rw 和 -ro 选项指示文件系统以读写方式挂载还是以只读方式挂载。缺省值为读写,该选项适用于远程起始目录、邮件假脱机目录或需要由用户更改的其他文件系统。只读选项适用于不应该由用户更改的目录。例如,用户不应写入手册页的共享副本。
可以使用此选项指定在挂载事务期间使用的验证机制。mode 的值可以是以下之一。
对 Kerberos 版本 5 验证服务使用 krb5。
对具备完整性的 Kerberos 版本 5 使用 krb5i。
对具备保密性的 Kerberos 版本 5 使用 krb5p。
不进行验证时,使用 none。
对于 Diffie-Hellman (DH) 验证,使用 dh。
对于标准的 UNIX 验证,使用 sys。
上述模式还在 /etc/nfssec.conf 中进行了定义。
如果服务器没有做出响应,则使用 soft 选项挂载的 NFS 文件系统将返回错误。hard 选项将使挂载继续重试,直到服务器做出响应为止。缺省值为 hard,大多数文件系统都应该使用此选项。应用程序不会经常检查从使用 soft 选项挂载的文件系统返回的值,这可能会使应用程序出现故障或可能导致文件损坏。如果应用程序检查返回值,则在使用 soft 选项的情况下,路由问题和其他情况可能仍然会干扰应用程序或导致文件损坏。在大多数情况下,不应该使用 soft 选项。如果文件系统是使用 hard 选项挂载的且不可用,则使用该文件系统的应用程序将挂起,直到该文件系统可用为止。
请参阅以下示例。
在 NFS 版本 2 或版本 3 中,这两个命令以只读方式从服务器 bee 挂载 NFS 文件系统。
# mount -F nfs -r bee:/export/share/man /usr/man
# mount -F nfs -o ro bee:/export/share/man /usr/man
在 NFS 版本 4 中,以下命令行将完成同样的挂载。
# mount -F nfs -o vers=4 -r bee:/export/share/man /usr/man
在 NFS 版本 2 或版本 3 中,即使已挂载了 /usr/man,此命令也会使用 -O 选项强制在本地系统上挂载服务器 bee 中的手册页。请参见以下内容。
# mount -F nfs -O bee:/export/share/man /usr/man
在 NFS 版本 4 中,以下命令行将完成同样的挂载。
# mount -F nfs -o vers=4 -O bee:/export/share/man /usr/man
在 NFS 版本 2 或版本 3 中,此命令使用客户机故障转移。
# mount -F nfs -r bee,wasp:/export/share/man /usr/man
# mount -F nfs -o vers=4 -r bee,wasp:/export/share/man /usr/man
注 - 在命令行中使用时,列出的服务器必须支持同一版本的 NFS 协议。在命令行中运行 mount 时,请不要同时使用版本 2 和版本 3 服务器。可以同时将这两个服务器与 autofs 一起使用。Autofs 会自动选择最合适的版本 2 或版本 3 服务器。
以下示例将 NFS URL 与 NFS 版本 2 或版本 3 中的 mount 命令结合使用。
# mount -F nfs nfs://bee//export/share/man /usr/man
以下示例将 NFS URL 与 NFS 版本 4 中的 mount 命令结合使用。
# mount -F nfs -o vers=4 nfs://bee//export/share/man /usr/man
使用 forcedirectio 挂载选项,客户机可以对文件进行并发写入以及并发读取和写入操作。下面是一个示例。
# mount -F nfs -o forcedirectio bee:/home/somebody /mnt
在本示例中,命令从服务器 bee 挂载 NFS 文件系统,并对目录 /mnt 中的每个文件启用并发读取和写入。启用对并发读取和写入的支持时,将发生以下情况。
客户机允许应用程序并行写入文件。
客户机上禁用缓存。因此,来自读取和写入的数据将保留在服务器上。更明确地说,由于客户机不会高速缓存已读取或写入的数据,所以将从服务器读取应用程序尚未为其自身高速缓存的所有数据。客户机的操作系统不会具有此数据的副本。通常,NFS 客户机将在内核中高速缓存数据以供应用程序使用。
由于在客户机上禁用了缓存,因此将禁用读前进程和写后进程。当内核预料应用程序下一步可能请求的数据时会发生读前进程。然后,内核将提前启动收集该数据的进程。内核的目标是在应用程序请求数据之前将数据准备就绪。
客户机使用写后进程增加写吞吐量。数据将被高速缓存到内存中,而不是在应用程序每次将数据写入文件时立即启动 I/O 操作。随后,数据将被写入磁盘。
写后进程很可能会允许以较大的块写入数据,或者允许从应用程序异步写入数据。通常,使用较大块的结果是会增大吞吐量。异步写入允许应用程序处理和 I/O 处理之间有重叠。此外,异步写入允许存储子系统通过提供更好的 I/O 顺序来优化 I/O。同步写入在存储子系统上强制执行可能不是最优的 I/O 顺序。
如果应用程序不准备处理未被高速缓存的数据语义,则性能可能会大大降低。多线程应用程序可以避免此问题。
注 - 如果未启用对并发写入的支持,则对所有的写入请求进行串行化。串行化请求时,将发生以下情况。如果正在处理写入请求,则第二个写入请求必须等待第一个写入请求完成之后才能继续进行。
使用不含参数的 mount 命令可以显示客户机上挂载的文件系统。请参见以下内容。
% mount / on /dev/dsk/c0t3d0s0 read/write/setuid on Wed Apr 7 13:20:47 2004 /usr on /dev/dsk/c0t3d0s6 read/write/setuid on Wed Apr 7 13:20:47 20041995 /proc on /proc read/write/setuid on Wed Apr 7 13:20:47 2004 /dev/fd on fd read/write/setuid on Wed Apr 7 13:20:47 2004 /tmp on swap read/write on Wed Apr 7 13:20:51 2004 /opt on /dev/dsk/c0t3d0s5 setuid/read/write on Wed Apr 7 13:20:51 20041995 /home/kathys on bee:/export/home/bee7/kathys intr/noquota/nosuid/remote on Wed Apr 24 13:22:13 2004
使用此命令,可以删除当前已挂载的远程文件系统。umount 命令支持 -V 选项,以便进行测试。您还可以使用 -a 选项一次取消挂载多个文件系统。如果 mount-points 中包括 -a 选项,则会取消挂载这些文件系统。如果不包括挂载点,则系统会尝试取消挂载 /etc/mnttab 中列出的所有文件系统,但“必需的”文件系统(如 /、/usr、/var、/proc、/dev/fd 和 /tmp)除外。由于文件系统已挂载并且在 /etc/mnttab 中应有一个对应项,因此无需包括一个表示此文件系统类型的标志。
-f 选项可强制取消挂载繁忙的文件系统。可以使用此选项来取消挂起因尝试挂载无法挂载的文件系统而处于挂起状态的客户机。
注意 - 如果强制取消挂载文件系统,则在写入文件的情况下会导致数据丢失。 |
请参见以下示例。
示例 3-1 取消挂载文件系统
# umount /usr/man
示例 3-2 使用 umount 的选项
本示例显示了 umount - a -V 的运行结果:
# umount -a -V umount /home/kathys umount /opt umount /home umount /net
请注意,此命令实际上不会取消挂载文件系统。
使用此命令可挂载文件系统表中列出的所有文件系统或特定的一组文件系统。此命令提供了执行以下操作的方法:
由于所有标记为 NFS 文件系统类型的文件系统均为远程文件系统,因此在上述选项中,有一些是多余的。有关更多信息,请参见 mountall(1M) 手册页。
请注意,以下两个用户输入示例是等效的:
# mountall -F nfs
# mountall -F nfs -r
使用此命令可取消挂载一组文件系统。-k 选项运行 fuser -k mount-point 命令来中止所有与 mount-point 关联的进程。-s 选项表示不会并行执行取消挂载。-l 指定将仅使用本地文件系统,-r 指定将仅使用远程文件系统。-h host 选项表示应取消挂载已命名主机中的所有文件系统。不能将 -h 选项与 -l 或 -r 合并使用。
以下是取消挂载从远程主机挂载的所有文件系统的示例:
# umountall -r
以下是取消挂载当前从服务器 bee 挂载的所有文件系统的示例:
# umountall -h bee
此发行版包括 sharectl 实用程序,该实用程序是一个可用于配置和管理文件共享协议(例如 NFS)的管理工具。可以使用此命令执行以下操作:
设置客户机和服务器操作属性
显示特定协议的属性值
获取协议的状态
sharectl 实用程序使用以下语法:
# sharectl subcommand [option] [protocol]
sharectl 实用程序支持以下子命令:
表 3-2 sharectl 实用程序的子命令
|
有关 sharectl 实用程序的更多信息,请参见以下内容:
sharectl(1M) 手册页
set 子命令用于定义文件共享协议的属性,它支持以下选项:
提供联机帮助描述
定义协议的属性
set 子命令使用以下语法:
# sharectl set [-h] [-p property=value] protocol
注 -
必须具有 root 特权才能使用 set 子命令。
您不需要对每个附加属性值重复此命令行语法。您可以多次使用 -p 选项在同一命令行上定义多个属性。
以下示例将客户机的 NFS 协议的最低版本设置为 3:
# sharectl set -p client_versmin=3 nfs
get 子命令用于显示指定协议的属性和属性值,它支持以下选项:
提供联机帮助描述
标识指定属性的属性值。如果未使用 -p 选项,将显示所有属性值。
get 子命令使用以下语法:
# sharectl get [-h] [-p property] protocol
注 - 必须具有 root 特权才能使用 get 子命令。
以下示例使用了 servers,它是一个可用以指定最大并发 NFS 请求数的属性:
# sharectl get -p servers nfs servers=1024
在以下示例中,由于未使用 -p 选项,因此将显示所有属性值:
# sharectl get nfs servers=1024 listen_backlog=32 protocol=ALL servers=32 lockd_listen_backlog=32 lockd_servers=20 lockd_retransmit_timeout=5 grace_period=90 nfsmapid_domain=company.com server_versmin=2 server_versmax=4 client_versmin=2 client_versmax=4 server_delegation=on max_connections=-1 device=
status 子命令用于显示指定协议是已启用还是已禁用,它支持以下选项:
提供联机帮助描述
status 子命令使用以下语法:
# sharectl status [-h] [protocol]
以下示例显示了 NFS 协议的状态:
# sharectl status nfs nfs enabled
使用此命令,可以在 NFS 服务器上挂载本地文件系统。另外,还可以使用 share 命令显示当前在系统上共享的文件系统列表。NFS 服务器必须处于运行状态才能使用 share 命令。
可以共享的对象包括任意目录树。但是,每个文件系统分层结构会受到文件系统所在的磁盘分片或磁盘分区的限制。
如果某个文件系统是一个已共享的更大文件系统的一部分,则不能共享此文件系统。例如,如果 /usr 和 /usr/local 位于同一磁盘分片上,则可以共享 /usr 或 /usr/local。但是,如果这两个目录需要使用不同的共享选项进行共享,则必须将 /usr/local 移到单独的磁盘分片上。
通过读写共享的文件系统的文件句柄,可以获取对只读共享的文件系统的访问权限。但是,这两个文件系统必须位于同一磁盘分片上。您可以创建更为安全的环境。请将那些需要读写的文件系统置于单独的分区或磁盘分片中,使其与需要以只读方式共享的文件系统分隔开来。
文件系统仅供列出的客户机进行读写共享。其他所有请求均被拒绝。从 Solaris 2.6 发行版开始,accesslist 中定义的客户机列表已进行了扩展。有关更多信息,请参见使用 share 命令设置访问列表。可以使用此选项来覆盖 -ro 选项。
以下是可以用于 NFS 文件系统的选项。
使用此选项,可以将支持 NFS 版本 2 协议的 NFS 服务器配置为对 NFS 版本 2 客户机进行访问控制。如果不使用此选项,则会为所有客户机提供最低访问权限。如果使用此选项,则客户机具有最高访问权限。例如,在使用 -aclok 选项进行共享的文件系统上,如果某个用户具有读取权限,则所有用户均具有读取权限。但是,如果不使用此选项,本应具有访问权限的客户机也会被拒绝访问。确定是允许较多访问还是较少访问取决于已设置的安全系统。有关访问控制列表 (access control list, ACL) 的更多信息,请参见《Oracle Solaris 11.1 管理:安全服务》中的"使用访问控制列表保护 UFS 文件"。
注 - 要使用 ACL,请确保客户机和服务器运行的软件支持 NFS 版本 3 协议和 NFS_ACL 协议。如果该软件仅支持 NFS 版本 3 协议,则客户机可获取正确的访问权限,但不能处理 ACL。如果该软件支持 NFS_ACL 协议,则客户机可获取正确的访问权限,并且可处理 ACL。
可以使用 uid 来选择未验证的用户的用户 ID。如果将 uid 设置为 -1,则服务器会拒绝未验证的用户进行访问。通过设置 anon=0 可以授予 root 访问权限,但是由于此选项允许未验证的用户具有 root 访问权限,因此请改用 root 选项。
用户访问 NFS URL 时,-index= filename 选项会强制装入 HTML 文件,而不是显示目录列表。如果在 HTTP URL 正在访问的目录中找到 index.html 文件,则此选项会模拟当前浏览器的操作。此选项相当于为 httpd 设置 DirectoryIndex 选项。例如,假定 share 命令报告以下信息:
export_web /export/web nfs sec=sys,public,index=index.html,ro
这些 URL 随后会显示相同的信息:
nfs://<server>/<dir> nfs://<server>/<dir>/index.html nfs://<server>//export/web/<dir> nfs://<server>//export/web/<dir>/index.html http://<server>/<dir> http://<server>/<dir>/index.html
此选项可指定 /etc/nfs/nfslog.conf 中的标记,该文件中包含文件系统的 NFS 服务器日志记录配置信息。必须选择此选项才能启用 NFS 服务器日志记录。
此选项表示应忽略所有启用 setuid 或 setgid 模式的尝试。NFS 客户机不能创建启用了 setuid 或 setgid 位的文件。
-public 选项已添加到 share 命令中,以启用 WebNFS 浏览功能。使用此选项在一台服务器上只能共享一个文件系统。
服务器会向列表中的主机提供 root 访问权限。缺省情况下,服务器不会向任何远程主机提供 root 访问权限。如果选定的安全模式不是 -sec=sys,则只能在 accesslist 中包括客户机主机名。从 Solaris 2.6 发行版开始,accesslist 中定义的客户机列表已进行了扩展。有关更多信息,请参见使用 share 命令设置访问列表。
client-name 值可用于 AUTH_SYS 验证,以便对照 exportfs(1B) 提供的地址列表来检查客户机的 IP 地址。如果找到匹配项,则可以向共享的文件系统提供 root 访问权限。
对于安全 NFS 模式(如 AUTH_SYS 或 RPCSEC_GSS),服务器会对照访问列表派生的基于主机的主体名称列表来检查客户机的主体名称。客户机主体名称的通用语法为 root@hostname。对于 Kerberos V,语法为 root/hostname.fully.qualified @REALM。使用 host-name 值时,访问列表中的客户机必须具有某个主体名称的凭证。对于 Kerberos V,客户机必须具有其 root/ hostname.fully.qualified@REALM 主体名称的有效密钥表项。有关更多信息,请参见《Oracle Solaris 11.1 管理:安全服务》中的"配置 Kerberos 客户机"。
mode 选择获取对文件系统的访问权限所需的安全模式。缺省情况下,安全模式为 UNIX 验证。可以指定多种模式,但是每个命令行一次只能使用一种安全模式。每个 -mode 选项都应用于所有后续的 -rw、-ro、-rw=、-ro=、-root= 和 -window= 选项,直至遇到其他 -mode 为止。使用 -sec=none 可将所有用户映射为用户 nobody。
value 选择 NFS 服务器上某个凭证的最长生命周期(以秒为单位)。缺省值为 30000 秒,即 8.3 小时。
accesslist 可以包含要拒绝访问的域名、子网号或项,以及标准 -ro=、-rw= 或 -root= 选项。由于不需要更改名称空间或维护较长的客户机列表,这些扩展简化了单个服务器上的文件访问控制。
以下命令为大多数系统提供只读访问权限,但是允许 rose 和 lilac 进行读写访问:
# share -F nfs -o ro,rw=rose:lilac /usr/src
在下面的示例中,只读访问权限指定给了 eng 网络组中的任意主机。专门为客户机 rose 提供了读写访问权限。
# share -F nfs -o ro=eng,rw=rose /usr/src
注 - 不能同时指定不带参数的 rw 和 ro。如果未指定读写选项,则缺省情况下会为所有客户机指定读写访问权限。
要使多台客户机共享一个文件系统,必须在同一行中键入所有选项。针对同一对象多次调用 share 命令时,将仅“记住”最后一个运行的命令。以下命令为三台客户机系统启用读写访问权限,但是仅为 rose 和 tulip 提供以 root 身份访问文件系统的权限。
# share -F nfs -o rw=rose:lilac:tulip,root=rose:tulip /usr/src
共享使用多种验证机制的文件系统时,请确保在正确的安全模式之后包含 -ro、-ro=、-rw、-rw=、-root 和 -window 选项。在本示例中,会为名为 eng 的网络组中的所有主机选择 UNIX 验证。这些主机只能以只读模式挂载文件系统。如果主机 tulip 和 lilac 使用 Diffie-Hellman 验证,则它们可以以读写模式挂载文件系统。使用这些选项时,即使主机 tulip 和 lilac 不使用 DH 验证,也可以以只读模式挂载文件系统。但是,必须在 eng 网络组中列出这些主机名。
# share -F nfs -o sec=dh,rw=tulip:lilac,sec=sys,ro=eng /usr/src
尽管 UNIX 验证是缺省安全模式,但如果使用 -sec 选项,也不会包含 UNIX 验证。因此,如果要将 UNIX 验证与其他任何验证机制一起使用,就必须包含 -sec=sys 选项。
通过在实际域名的前面添加一个点,可以在访问列表中使用 DNS 域名。点后面的字符串是域名,而不是全限定主机名。以下项允许挂载访问 eng.example.com 域中的所有主机:
# share -F nfs -o ro=.:.eng.example.com /export/share/man
在本示例中,单个 "." 与通过 NIS 名称空间匹配的所有主机相匹配。从这些名称服务返回的结果中不包括域名。".eng.example.com" 项与所有使用 DNS 进行名称空间解析的主机相匹配。DNS 始终返回全限定主机名。因此,如果使用了 DNS 和其他名称空间的组合,则需要较长的项。
通过在实际网络号或网络名的前面添加 "@",可以在访问列表中使用子网号。此字符可将网络名与网络组或全限定主机名区分开来。必须在 /etc/networks 或 NIS 名称空间中标识子网。如果 192.168 子网已标识为 eng 网络,则以下各项具有相同效果:
# share -F nfs -o ro=@eng /export/share/man # share -F nfs -o ro=@192.168 /export/share/man # share -F nfs -o ro=@192.168.0.0 /export/share/man
最后两项表明无需包括完整的网络地址。
如果网络前缀不是按字节对齐的,即与无类别域间路由 (Classless Inter-Domain Routing, CIDR) 一样,则可以在命令行中显式指定掩码长度。掩码长度可通过在网络名或网络号后添加一条斜杠和地址前缀中的有效位数进行定义。例如:
# share -f nfs -o ro=@eng/17 /export/share/man # share -F nfs -o ro=@192.168.0/17 /export/share/man
在上述示例中,"/17" 表示地址中的前 17 位将用作掩码。有关 CIDR 的其他信息,请查阅 RFC 1519。
另外,还可以通过在项的前面放置 "-" 来选择拒绝访问。请注意,各项是从左到右读取的。因此,必须将拒绝访问项放置在应用了拒绝访问项的项之前:
# share -F nfs -o ro=-rose:.eng.example.com /export/share/man
本示例将允许对 eng.example.com 域中除了名为 rose 的主机之外的任何主机进行访问。
此命令可以使之前可供客户机挂载的文件系统变为不可供客户机挂载。取消共享 NFS 文件系统时,将禁止从具有现有挂载的客户机进行访问。文件系统可能仍挂载在客户机上,但是无法再访问其中的文件。除非使用 -t 选项临时取消共享文件系统,否则 unshare 命令会永久删除共享。
以下是取消共享某个特定文件系统的示例:
# unshare /usr/src
使用此命令可共享多个文件系统。如果在不带选项的情况下使用此命令,则可以共享 SMF 系统信息库中的所有项。您可以包括一个文件名来指定其中列出了 share 命令行的文件的名称。
以下是共享本地文件中列出的所有文件系统的示例:
# shareall /etc/dfs/special_dfstab
此命令可使所有当前共享的资源不可用。-F FSType 选项可选择 /etc/dfs/fstypes 中定义的文件系统类型的列表。使用此标志,可以仅选择要取消共享的某些文件系统类型。/etc/dfs/fstypes 中定义了缺省的文件系统类型。要选择特定的文件系统,请使用 unshare 命令。
以下是取消共享所有 NFS 类型的文件系统的示例:
# unshareall -F nfs
此命令可显示以下内容之一:
已经远程挂载了通过 NFS 服务器共享的文件系统的所有客户机
仅由客户机挂载的文件系统
具有客户机访问信息的共享文件系统
注 - showmount 命令仅显示 NFS 版本 2 和版本 3 的导出内容。此命令不显示 NFS 版本 4 的导出内容。
showmount [ -ade ] [ hostname ]
输出所有远程挂载的列表。每项都包括客户机名称和目录。
输出由客户机远程挂载的目录的列表。
输出共享或导出的文件的列表。
选择要从中收集信息的 NFS 服务器。
以下命令列出了所有客户机以及这些客户机已挂载的本地目录:
# showmount -a bee lilac:/export/share/man lilac:/usr/src rose:/usr/src tulip:/export/share/man
以下命令列出了已挂载的目录:
# showmount -d bee /export/share/man /usr/src
以下命令列出了已共享的文件系统:
# showmount -e bee /usr/src (everyone) /export/share/man eng
/network/nfs/server:default 服务的 nfs_props/showmount_info 属性控制 showmount 命令向客户机显示的信息量。缺省值为 full。如果该值设置为 none,客户机只能看到服务器上自身可以挂载的那些远程文件系统。不会显示有关其他客户机的信息。有关如何更改此属性的说明,请参见示例 2-3。
nfsref 命令用于添加、删除或列出 NFSv4 引用。该命令语法如下所示:
nfsref add path location [ location … ]
nfsref remove path
nfsref lookup path
选择重解析点的名称。
标识一个或多个要与重解析点关联的 NFS 或 SMB 共享文件系统。
以下是与 FedFS 服务关联的命令:
有关如何使用这些命令的示例,请参见管理 FedFS。