必须以超级用户身份运行这些命令才能使其完全生效,但是所有的用户都可以发出信息请求:
此命令将安装 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 的输出。
您应该考虑到,调整持续时间还会更改反映对自动挂载程序映射所做更改的速度。取消挂载文件系统之前,无法查看更改。有关如何修改自动挂载程序映射的说明,请参阅修改映射。
通过此命令,可以删除 NFS 客户机的所有文件、记录和共享锁定。必须是 root 才能运行此命令。从 NFS 服务器,可以清除对特定客户机的锁定。从 NFS 客户机,可以清除该客户机对特定服务器的锁定。以下示例将清除对当前系统上名为 tulip 的 NFS 客户机的锁定。
# clear_locks tulip |
使用 -s 选项可以指定要从中清除锁定的 NFS 主机。必须从创建锁定的 NFS 客户机运行此选项。在这种情况下,将从名为 bee 的 NFS 服务器中删除客户机锁定。
# clear_locks -s bee |
只有在客户机崩溃且无法清除其锁定时,才应运行此命令。为避免数据损坏问题,请不要清除对活动客户机的锁定。
使用此命令,可以将已命名的文件系统(本地或远程)连接到指定的挂载点。有关更多信息,请参见 mount(1M) 手册页。在不使用参数的情况下,mount 将显示当前在计算机上挂载的文件系统列表。
标准 Solaris 安装中包括许多类型的文件系统。每个文件系统类型都有特定的手册页,其中列出了适用于该文件系统类型的 mount 选项。NFS 文件系统的手册页为 mount_nfs(1M)。对于 UFS 文件系统,请参见 mount_ufs(1M)。
Solaris 7 发行版可以使用 NFS URL(而不是标准的 server:/pathname 语法)从 NFS 服务器选择要挂载的路径名。有关详细信息,请参见如何使用 NFS URL 挂载 NFS 文件系统。
从 2.6 到当前发行版的任何 Solaris 发行版中包括的 mount 命令版本都不会发出有关无效选项的警告。该命令将默认忽略无法解释的所有选项。请确保验证已使用的所有选项,以便防止出现意外行为。
下面介绍挂载 NFS 文件系统时可跟在 -o 标志后面的某些选项。有关完整的选项列表,请参阅 mount_nfs(1M) 手册页。
可以使用这些选项来选择挂载失败时的重试行为。bg 选项将导致挂载试图在后台运行。fg 选项将导致挂载试图在前台运行。缺省值为 fg,对于必须可用的文件系统而言,这是最佳选择。此选项可防止在挂载完成之前进一步进行处理。bg 是适用于非关键文件系统的适当选择,因为客户机在等待挂载请求完成的同时可以执行其他处理。
此选项可提高大型连续数据传输的性能。数据将直接复制到用户缓冲区。不会在客户机的内核中执行任何缓存操作。缺省情况下,此选项处于关闭状态。
以前,所有写请求都被 NFS 客户机和 NFS 服务器串行化。NFS 客户机已被修改,允许应用程序向单个文件发出并发写入以及并发读取和写入。您可以使用 forcedirectio 挂载选项在客户机上启用此功能。使用此选项时,将为已挂载文件系统中的所有文件启用此功能。还可以通过使用 directio() 接口对客户机的单个文件启用此功能。除非启用了此功能,否则对文件的写入一定是串行化的。而且,如果正在进行并发写入或并发读取和写入,该文件将不再支持 POSIX 语义。
有关如何使用此选项的示例,请参阅使用 mount 命令。
使用此选项,可以在运行 Solaris 2.6 发行版的服务器上访问大于 2 GB 的文件。由于只能在服务器上控制某个大文件是否可以访问,因此在 NFS 版本 3 挂载中将默认忽略此选项。从 2.6 发行版开始,缺省情况下,所有的 UFS 文件系统都使用 largefiles 进行挂载。对于使用 NFS 版本 2 协议的挂载,largefiles 选项将导致挂载失败,且会出现错误。
用于 UFS 挂载的此选项可以保证文件系统中不会存在大文件。请参见 mount_ufs(1M) 手册页。由于只能在 NFS 服务器上控制大文件的存在,因此使用 NFS 挂载时不存在用于 nolargefiles 的选项。系统将拒绝尝试使用此选项挂载 NFS 文件系统,且会出现错误。
从 Solaris 10 发行版开始,nosuid 选项与指定 nosetuid 选项和 nodevices 选项等效。指定 nodevices 选项时,禁止在已挂载的文件系统上打开特定于设备的文件。指定 nosetuid 选项时,系统将忽略位于文件系统中的二进制文件的 setuid 位和 setgid 位。进程将使用执行该二进制文件的用户的权限运行。
suid 选项与指定 setuid 选项和 devices 选项等效。指定 devices 选项时,允许在已挂载的文件系统上打开特定于设备的文件。指定 setuid 选项时,内核将接受位于文件系统中的二进制文件的 setuid 位和 setgid 位。
如果这两个选项都没有指定,则缺省选项为 suid,这将提供指定 setuid 选项和 devices 选项的缺省行为。
下表介绍了将 nosuid 或 suid 与 devices 或 nodevices,以及 setuid 或 nosetuid 组合的效果。请注意,在选项的每个组合中,行为由限制性最强的选项确定。
组合选项的行为 |
选项 |
选项 |
选项 |
---|---|---|---|
与使用 nodevices 和 nosetuid 等效 |
nosuid |
nosetuid |
nodevices |
与使用 nodevices 和 nosetuid 等效 |
nosuid |
nosetuid |
devices |
与使用 nodevices 和 nosetuid 等效 |
nosuid |
setuid |
nodevices |
与使用 nodevices 和 nosetuid 等效 |
nosuid |
setuid |
devices |
与使用 nodevices 和 nosetuid 等效 |
suid |
nosetuid |
nodevices |
与使用 devices 和 nosetuid 等效 |
suid |
nosetuid |
devices |
与使用 nodevices 和 setuid 等效 |
suid |
setuid |
nodevices |
与使用 devices 和 setuid 等效 |
suid |
setuid |
devices |
nosuid 选项为访问可能不可信的服务器的 NFS 客户机提供了附加安全性。使用此选项挂载远程文件系统会减少通过导入不可信设备或导入不可信 setuid 二进制文件来升级权限的机会。所有这些选项在所有的 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 选项可强制取消挂载繁忙的文件系统。可以使用此选项来取消挂起因尝试挂载无法挂载的文件系统而处于挂起状态的客户机。
如果强制取消挂载文件系统,则在写入文件的情况下会导致数据丢失。
请参见以下示例。
# umount /usr/man |
本示例显示了 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 |
使用此命令,可以挂载 NFS 服务器上的本地文件系统。另外,还可以使用 share 命令显示当前在系统上共享的文件系统列表。NFS 服务器必须处于运行状态才能使用 share 命令。如果 /etc/dfs/dfstab 中存在一项,则在系统引导过程中会自动启动 NFS 服务器软件。如果 NFS 服务器软件未运行,则此命令不会报告错误,因此必须验证此软件是否正在运行。
可以共享的对象包括任意目录树。但是,每个文件系统分层结构会受到文件系统所在的磁盘分片或磁盘分区的限制。例如,共享根 (/) 文件系统将不会同时共享 /usr,除非这些目录位于相同的磁盘分区或磁盘分片上。标准安装将根目录放在分片 0 上,将 /usr 放在分片 6 上。另外,共享 /usr 时将不会共享在 /usr 的子目录上挂载的其他任何本地磁盘分区。
如果某个文件系统是一个已共享的大文件系统的一部分,则不能共享此文件系统。例如,如果 /usr 和 /usr/local 位于同一磁盘分片上,则可以共享 /usr 或 /usr/local。但是,如果这两个目录需要使用不同的共享选项进行共享,则必须将 /usr/local 移到单独的磁盘分片上。
通过读写共享的文件系统的文件句柄,可以获取对只读共享的文件系统的访问。但是,这两个文件系统必须位于同一磁盘分片上。您可以创建更为安全的环境。请将那些需要读写的文件系统放在单独的分区或磁盘分片上,使其与需要只读共享的文件系统分隔开来。
有关取消共享文件系统之后再重新共享此系统时 NFS 版本 4 如何运行的信息,请参阅在 NFS 版本 4 中取消共享和重新共享文件系统。
文件系统仅对列出的客户机是读写共享。其他所有请求均被拒绝。从 Solaris 2.6 发行版开始,accesslist 中定义的客户机列表已进行了扩展。有关更多信息,请参见使用 share 命令设置访问列表。可以使用此选项来覆盖 -ro 选项。
以下是可以用于 NFS 文件系统的选项。
使用此选项,可以将支持 NFS 版本 2 协议的 NFS 服务器配置为对 NFS 版本 2 客户机进行访问控制。如果不使用此选项,则会为所有客户机提供最低访问权限。如果使用此选项,则客户机具有最高访问权限。例如,在使用 -aclok 选项共享的文件系统上,如果某个用户具有读取权限,则所有用户均可具有读取权限。但是,如果不使用此选项,本该具有访问权限的客户机也会被拒绝访问。确定是允许最多访问还是最少访问取决于已设置的安全系统。有关访问控制列表 (access control list, ACL) 的更多信息,请参见《系统管理指南:安全性服务》中的“使用访问控制列表保护文件”。
要使用 ACL,请确保客户机和服务器运行的软件支持 NFS 版本 3 协议和 NFS_ACL 协议。如果该软件仅支持 NFS 版本 3 协议,则客户机可获取正确的访问权限,但不能处理 ACL。如果该软件支持 NFS_ACL 协议,则客户机可获取正确的访问权限,并且可处理 ACL。从 Solaris 2.5 发行版开始,Solaris 系统同时支持这两种协议。
可以使用 uid 来选择未验证的用户的用户 ID。如果将 uid 设置为 -1,则服务器会拒绝未验证的用户进行访问。通过设置 anon=0 可以授予超级用户访问权限,但是由于此选项允许未验证的用户具有超级用户访问权限,因此请改用 root 选项。
用户访问 NFS URL 时,-index=filename 选项会强制装入 HTML 文件,而不是显示目录列表。如果在 HTTP URL 正在访问的目录中找到 index.html 文件,则此选项会模拟当前浏览器的操作。此选项相当于为 httpd 设置 DirectoryIndex 选项。例如,假定 dfstab 文件项与以下内容类似:
share -F nfs -o ro,public,index=index.html /export/web |
这些 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 浏览功能。使用此选项在一台服务器上只能共享一个文件系统。
服务器会为列表中的主机提供超级用户访问权限。缺省情况下,服务器不会为任何远程主机提供超级用户访问权限。如果选定的安全模式不是 -sec=sys,则只能在 accesslist 中包括客户机主机名。从 Solaris 2.6 发行版开始,accesslist 中定义的客户机列表已进行了扩展。有关更多信息,请参见使用 share 命令设置访问列表。
授予其他主机超级用户访问权限会涉及广泛的安全问题。请慎用 -root= 选项。
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 主体名称的有效密钥表项。有关更多信息,请参见《系统管理指南:安全性服务》中的“配置 Kerberos 客户机”。
mode 选择获取对文件系统的访问所需的安全模式。缺省情况下,安全模式为 UNIX 验证。可以指定多种模式,但是每个命令行一次只能使用一种安全模式。每个 -mode 选项都应用于所有后续的 -rw、-ro、-rw=、-ro=、-root= 和 -window= 选项,直至遇到其他 -mode 为止。使用 -sec=none 可将所有用户映射为用户 nobody。
value 选择 NFS 服务器上某个凭证的最长生命周期(以秒为单位)。缺省值为 30000 秒,即 8.3 小时。
在 Solaris 2.6 之前的发行版中,用于 share 命令的 -ro=、-rw= 或 -root= 选项的 accesslist 仅限于主机名或网络组名的列表。从 Solaris 2.6 发行版开始,访问列表还可以包括域名、子网号或拒绝访问的项。由于不必更改名称空间或维护较长的客户机列表,这些扩展简化了单一服务器上的文件访问控制。
以下命令为大多数系统提供只读访问权限,但是允许 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 或 NIS+ 名称空间匹配的所有主机相匹配。 从这些名称服务中返回的结果中不包括域名。“.eng.example.com” 项与所有使用 DNS 进行名称空间解析的主机相匹配。DNS 始终返回全限定主机名。因此,如果使用了 DNS 和其他名称空间的组合,则需要较长的项。
通过在实际网络号或网络名的前面添加 “@”,可以在访问列表中使用子网号。此字符可将网络名与网络组或全限定主机名区分开来。必须在 /etc/networks、NIS 或 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 的主机之外的任何主机进行访问。
使用此命令,可使以前可供挂载的文件系统不能再由客户机挂载。可以使用 unshare 命令取消共享任何文件系统,无论此文件系统是使用 share 命令进行显式共享还是通过 /etc/dfs/dfstab 自动共享。如果使用 unshare 命令取消共享通过 dfstab 文件共享的文件系统,请务必谨慎。请记住,退出再重新进入运行级 3 时,会再次共享文件系统。如果要保持这一更改,则必须从 dfstab 文件中删除此文件系统项。
取消共享 NFS 文件系统时,将禁止从具有现有挂载的客户机进行访问。文件系统可能仍挂载在客户机上,但是无法再访问其中的文件。
有关取消共享文件系统之后再重新共享此系统时 NFS 版本 4 如何运行的信息,请参阅在 NFS 版本 4 中取消共享和重新共享文件系统。
以下是取消共享某个特定文件系统的示例:
# unshare /usr/src |
使用此命令可共享多个文件系统。如果在不带选项的情况下使用此命令,则可以共享 /etc/dfs/dfstab 中的所有项。您可以包括一个文件名来指定其中列出了 share 命令行的文件的名称。如果没有包括文件名,则会检查 /etc/dfs/dfstab。如果使用 “-” 来替换文件名,则可以从标准输入中键入 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 |
此命令可创建 /etc/mnttab 表。mount 和 umount 命令会查阅该表。通常不必手动运行此命令,因为它会在系统引导时自动运行。