JavaScript is required to for searching.
跳过导航链接
退出打印视图
Oracle Solaris 管理:网络服务     Oracle Solaris 11 Information Library (简体中文)
search filter icon
search icon

文档信息

前言

第 1 部分网络服务主题

1.  网络服务(概述)

2.  管理 Web 高速缓存服务器

3.  与时间有关的服务

第 2 部分访问网络文件系统主题

4.  管理网络文件系统(概述)

5.  网络文件系统管理(任务)

6.  访问网络文件系统(参考)

NFS 文件

/etc/default/nfslogd 文件

/etc/nfs/nfslog.conf 文件

NFS 守护进程

automountd 守护进程

lockd 守护进程

mountd 守护进程

nfs4cbd 守护进程

nfsd 守护进程

nfslogd 守护进程

nfsmapid 守护进程

配置文件和 nfsmapid

优先级规则

nfsmapid 和 DNS TXT 记录

检查 NFS 版本 4 域

配置 NFS 版本 4 缺省域

有关 nfsmapid 的其他信息

reparsed 守护进程

statd 守护进程

NFS 命令

automount 命令

clear_locks 命令

fsstat 命令

mount 命令

NFS 文件系统的 mount 选项

使用 mount 命令

umount 命令

mountall 命令

umountall 命令

sharectl 命令

set 子命令

get 子命令

status 子命令

share 命令

特定于非文件系统的 share 选项

特定于 NFS 的 share 选项

使用 share 命令设置访问列表

unshare 命令

shareall 命令

unshareall 命令

showmount 命令

setmnt 命令

nfsref 命令

用于解决 NFS 问题的命令

nfsstat 命令

pstack 命令

rpcinfo 命令

snoop 命令

truss 命令

NFS Over RDMA

NFS 服务如何工作

NFS 中的版本协商

NFS 版本 4 的功能

在 NFS 版本 4 中取消共享和重新共享文件系统

NFS 版本 4 中的文件系统名称空间

NFS 版本 4 中的可变文件句柄

NFS 版本 4 中的客户机恢复

NFS 版本 4 中的 OPEN 共享支持

NFS 版本 4 中的委托

NFS 版本 4 中的 ACL 和 nfsmapid

UDP 和 TCP 协商

文件传输大小协商

如何挂载文件系统

挂载时 -public 选项和 NFS URL 的作用

客户端故障转移

故障转移术语

什么是复制的文件系统?

故障转移和 NFS 锁定

NFS 版本 4 中的客户端故障转移

大文件

NFS 服务器日志记录如何工作

WebNFS 服务如何工作

WebNFS 安全协商如何工作

Web 浏览器使用的 WebNFS 限制

安全 NFS 系统

安全 RPC

DH 验证

KERB 验证

在 NFS 中使用安全 RPC

镜像挂载的工作原理

何时使用镜像挂载

使用镜像挂载来挂载文件系统

使用镜像挂载卸载文件系统

NFS 引用的工作原理

何时使用 NFS 引用?

创建 NFS 引用

删除 NFS 引用

Autofs 映射

Autofs 主映射

挂载点 /home

挂载点 /net

挂载点 /nfs4

Autofs 直接映射

挂载点 /-

Autofs 间接映射

Autofs 如何工作

Autofs 如何在网络中进行导航(映射)

Autofs 如何启动导航进程(主映射)

Autofs 挂载过程

简单的 Autofs 挂载

有层次挂载

Autofs 取消挂载

Autofs 如何为客户机选择最近的只读文件(多个位置)

Autofs 和加权

Autofs 映射项中的变量

引用其他映射的映射

Autofs 可执行映射

修改 Autofs 导航网络的方式(修改映射)

使用名称服务时的缺省 Autofs 行为

Autofs 参考

Autofs 和元字符

和符号 (&)

星号 (*)

Autofs 和特殊字符

第 3 部分SLP 主题

7.  SLP(概述)

8.  规划和启用 SLP(任务)

9.  管理 SLP(任务)

10.  引入传统服务

11.  SLP(参考)

第 4 部分邮件服务主题

12.  邮件服务(概述)

13.  邮件服务(任务)

14.  邮件服务(参考)

第 5 部分串行网络主题

15.  Solaris PPP 4.0(概述)

16.  规划 PPP 链路(任务)

17.  设置拨号 PPP 链路(任务)

18.  设置租用线路 PPP 链路(任务)

19.  设置 PPP 验证(任务)

20.  设置 PPPoE 通道(任务)

21.  修复常见的 PPP 问题(任务)

22.  Solaris PPP 4.0(参考)

23.  从异步 Solaris PPP 迁移至 Solaris PPP 4.0(任务)

24.  UUCP(概述)

25.  管理 UUCP(任务)

26.  UUCP(参考)

第 6 部分使用远程系统主题

27.  使用远程系统(概述)

28.  管理 FTP 服务器(任务)

29.  访问远程系统(任务)

第 7 部分监视网络服务主题

30.  监视网络性能(任务)

词汇表

索引

NFS 命令

必须以 root 身份运行这些命令才能使其完全生效,但所有用户都可以发出信息请求:

automount 命令

此命令安装 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 命令设置的参数。

timeout

设置在取消挂载文件系统之前文件系统保持空闲的持续时间。此关键字与 automount 命令的 -t 参数等效。缺省值为 600。

automount_verbose

提供有关 autofs 挂载、取消挂载和其他不重要事件的通知。此关键字与 automount-v 参数等效。缺省值为 FALSE。

clear_locks 命令

通过此命令,可以删除 NFS 客户机的所有文件、记录和共享锁定。您必须是 root 才能运行此命令。从 NFS 服务器,可以清除对特定客户机的锁定。从 NFS 客户机,可以清除特定服务器上对该客户机的锁定。以下示例将清除对当前系统上名为 tulip 的 NFS 客户机的锁定。

# clear_locks tulip

使用 -s 选项可以指定要从中清除锁定的 NFS 主机。必须从创建锁定的 NFS 客户机运行此选项。在这种情况下,将从名为 bee 的 NFS 服务器中删除客户机锁定。

# clear_locks -s bee

注意

注意 - 只有在客户机崩溃且无法清除其锁定时,才应运行此命令。为避免数据损坏问题,请不要清除对活动客户机的锁定。


fsstat 命令

使用 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 命令

使用此命令,可以将已命名的文件系统(本地或远程)附加到指定的挂载点。有关更多信息,请参见 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 文件系统的 mount 选项

以下内容列出了挂载 NFS 文件系统时可跟在 -o 标志后面的某些选项。有关完整的选项列表,请参阅 mount_nfs(1M) 手册页。

bg|fg

可以使用这些选项来选择挂载失败时的重试行为。bg 选项将导致挂载尝试在后台运行。fg 选项将导致挂载尝试在前台运行。缺省值为 fg,对于必须可用的文件系统而言,这是最佳选择。此选项可防止在挂载完成之前进行进一步处理。对于非关键文件系统,bg 是适合的选择,因为客户机在等待挂载请求完成的同时可以执行其他处理。

forcedirectio

此选项可改进大型连续数据传输的性能。数据将直接复制到用户缓冲区。不会在客户机的内核中执行任何缓存操作。缺省情况下,此选项处于关闭状态。

以前,所有写入请求都由 NFS 客户机和 NFS 服务器进行串行化。NFS 客户机已被修改,允许应用程序向单个文件发出并发写入以及并发读取和写入。您可以使用 forcedirectio 挂载选项在客户机上启用此功能。使用此选项时,您将为已挂载文件系统中的所有文件启用此功能。您还可以通过使用 directio() 接口在客户机的单个文件中启用此功能。除非启用了此功能,否则对文件的写入一定是串行化的。而且,如果正在进行并发写入或并发读取和写入,该文件将不再支持 POSIX 语义。

有关如何使用此选项的示例,请参阅使用 mount 命令

largefiles

使用此选项,可以访问大于 2 GB 的文件。由于只能在服务器上控制是否可以访问大文件,因此在 NFS 版本 3 挂载中将默认忽略此选项。缺省情况下,所有的 UFS 文件系统都使用 largefiles 进行挂载。对于使用 NFS 版本 2 协议的挂载,largefiles 选项将导致挂载失败,且会出现错误。

nolargefiles

此选项用于 UFS 挂载,可以保证文件系统中不会存在大文件。请参见 mount_ufs(1M) 手册页。由于只能在 NFS 服务器上控制大文件的存在,因此使用 NFS 挂载时不存在用于 nolargefiles 的选项。系统将拒绝使用此选项尝试对文件系统进行 NFS 挂载,且会显示错误。

nosuid|suid

nosuid 选项与指定 nodevices 选项和 nosetuid 选项等效。指定 nodevices 选项时,禁止在已挂载的文件系统上打开特定于设备的文件。指定 nosetuid 选项时,系统将忽略位于文件系统中的二进制文件的 setuid 位和 setgid 位。进程将使用执行该二进制文件的用户的权限运行。

suid 选项与指定 devices 选项和 setuid 选项等效。指定 devices 选项时,允许在已挂载的文件系统上打开特定于设备的文件。指定 setuid 选项时,内核将接受位于文件系统中的二进制文件的 setuid 位和 setgid 位。

如果这两个选项都没有指定,则缺省选项为 suid,这将提供指定 devices 选项和 setuid 选项这一缺省行为。

下表介绍了将 nosuidsuiddevicesnodevices,以及 setuidnosetuid 组合的效果。请注意,在每个选项组合中,限制性最强的选项将确定行为。

组合选项的行为
选项
选项
选项
与使用 nosetuidnodevices 等效
nosuid
nosetuid
nodevices
与使用 nosetuidnodevices 等效
nosuid
nosetuid
devices
与使用 nosetuidnodevices 等效
nosuid
setuid
nodevices
与使用 nosetuidnodevices 等效
nosuid
setuid
devices
与使用 nosetuidnodevices 等效
suid
nosetuid
nodevices
与使用 nosetuiddevices 等效
suid
nosetuid
devices
与使用 setuidnodevices 等效
suid
setuid
nodevices
与使用 setuiddevices 等效
suid
setuid
devices

nosuid 选项为访问可能不可信服务器的 NFS 客户机提供了附加安全性。使用此选项挂载远程文件系统会减少通过导入不可信设备或导入不可信 setuid 二进制文件来升级特权的机会。所有这些选项在所有的 Oracle Solaris 文件系统中都是可用的。

public

与 NFS 服务器联系时,此选项将强制使用公共文件句柄。如果服务器支持公共文件句柄,则由于不使用 MOUNT 协议,挂载操作会比较快。此外,由于不使用 MOUNT 协议,公共选项允许穿过防火墙进行挂载。

rw|ro

-rw-ro 选项指示文件系统以读写方式挂载还是以只读方式挂载。缺省值为读写,该选项适用于远程起始目录、邮件假脱机目录或需要由用户更改的其他文件系统。只读选项适用于不应该由用户更改的目录。例如,用户不应写入手册页的共享副本。

sec=mode

可以使用此选项指定在挂载事务期间使用的验证机制。mode 的值可以是以下之一。

  • 对 Kerberos 版本 5 验证服务使用 krb5

  • 对具备完整性的 Kerberos 版本 5 使用 krb5i

  • 对具备保密性的 Kerberos 版本 5 使用 krb5p

  • 不进行验证时,使用 none

  • 对于 Diffie-Hellman (DH) 验证,使用 dh

  • 对于标准的 UNIX 验证,使用 sys

上述模式还在 /etc/nfssec.conf 中进行了定义。

soft|hard

如果服务器没有做出响应,则使用 soft 选项挂载的 NFS 文件系统将返回错误。hard 选项将使挂载继续重试,直到服务器做出响应为止。缺省值为 hard,大多数文件系统都应该使用此选项。应用程序不会经常检查从使用 soft 选项挂载的文件系统返回的值,这可能会使应用程序出现故障或可能导致文件损坏。如果应用程序检查返回值,则在使用 soft 选项的情况下,路由问题和其他情况可能仍然会干扰应用程序或导致文件损坏。在大多数情况下,不应该使用 soft 选项。如果文件系统是使用 hard 选项挂载的且不可用,则使用该文件系统的应用程序将挂起,直到该文件系统可用为止。

使用 mount 命令

请参阅以下示例。

umount 命令

使用此命令,可以删除当前已挂载的远程文件系统。umount 命令支持 -V 选项,以便进行测试。您还可以使用 -a 选项一次取消挂载多个文件系统。如果 mount-points 中包括 -a 选项,则会取消挂载这些文件系统。如果不包括挂载点,则系统会尝试取消挂载 /etc/mnttab 中列出的所有文件系统,但“必需的”文件系统(如 //usr/var/proc/dev/fd/tmp)除外。由于文件系统已挂载并且在 /etc/mnttab 中应有一个对应项,因此无需包括一个表示此文件系统类型的标志。

-f 选项可强制取消挂载繁忙的文件系统。可以使用此选项来取消挂起因尝试挂载无法挂载的文件系统而处于挂起状态的客户机。


注意

注意 - 如果强制取消挂载文件系统,则在写入文件的情况下会导致数据丢失。


请参见以下示例。

示例 6-1 取消挂载文件系统

本示例取消挂载在 /usr/man 上挂载的文件系统:

# umount /usr/man

示例 6-2 使用 umount 的选项

本示例显示了 umount - a -V 的运行结果:

# umount -a -V
umount /home/kathys
umount /opt
umount /home
umount /net

请注意,此命令实际上不会取消挂载文件系统。

mountall 命令

使用此命令可挂载文件系统表中列出的所有文件系统或特定的一组文件系统。此命令提供了执行以下操作的方法:

由于所有标记为 NFS 文件系统类型的文件系统均为远程文件系统,因此在上述选项中,有一些是多余的。有关更多信息,请参见 mountall(1M) 手册页。

请注意,以下两个用户输入示例是等效的:

# mountall -F nfs
# mountall -F nfs -r

umountall 命令

使用此命令可取消挂载一组文件系统。-k 选项运行 fuser -k mount-point 命令来中止所有与 mount-point 关联的进程。-s 选项表示不会并行执行取消挂载。-l 指定将仅使用本地文件系统,-r 指定将仅使用远程文件系统。-h host 选项表示应取消挂载已命名主机中的所有文件系统。不能将 -h 选项与 -l-r 合并使用。

以下是取消挂载从远程主机挂载的所有文件系统的示例:

# umountall -r

以下是取消挂载当前从服务器 bee 挂载的所有文件系统的示例:

# umountall -h bee

sharectl 命令

此发行版包括 sharectl 实用程序,该实用程序是一个可用于配置和管理文件共享协议(例如 NFS)的管理工具。可以使用此命令执行以下操作:

sharectl 实用程序使用以下语法:

# sharectl subcommand [option] [protocol]

sharectl 实用程序支持以下子命令:

表 6-2 sharectl 实用程序的子命令

子命令
说明
set
定义文件共享协议的属性。有关属性和属性值的列表,请参见 nfs(4) 手册页中介绍的参数。
get
显示指定协议的属性和属性值。
status
显示指定协议是已启用还是已禁用。如果未指定协议,将显示所有文件共享协议的状态。

有关 sharectl 实用程序的更多信息,请参见以下内容:

set 子命令

set 子命令用于定义文件共享协议的属性,它支持以下选项:

-h

提供联机帮助描述

-p

定义协议的属性

set 子命令使用以下语法:

# sharectl set [-h] [-p property=value] protocol

注 - 请注意以下内容:


以下示例将客户机的 NFS 协议的最低版本设置为 3

# sharectl set -p nfs_client_versmin=3 nfs

get 子命令

get 子命令用于显示指定协议的属性和属性值,它支持以下选项:

-h

提供联机帮助描述

-p

标识指定属性的属性值。如果未使用 -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 子命令用于显示指定协议是已启用还是已禁用,它支持以下选项:

-h

提供联机帮助描述

status 子命令使用以下语法:

# sharectl status [-h] [protocol]

以下示例显示了 NFS 协议的状态:

# sharectl status nfs
nfs       enabled

share 命令

使用此命令,可以在 NFS 服务器上挂载本地文件系统。另外,还可以使用 share 命令显示当前在系统上共享的文件系统列表。NFS 服务器必须处于运行状态才能使用 share 命令。

可以共享的对象包括任意目录树。但是,每个文件系统分层结构会受到文件系统所在的磁盘分片或磁盘分区的限制。

如果某个文件系统是一个已共享的更大文件系统的一部分,则不能共享此文件系统。例如,如果 /usr/usr/local 位于同一磁盘分片上,则可以共享 /usr/usr/local。但是,如果这两个目录需要使用不同的共享选项进行共享,则必须将 /usr/local 移到单独的磁盘分片上。

通过读写共享的文件系统的文件句柄,可以获取对只读共享的文件系统的访问权限。但是,这两个文件系统必须位于同一磁盘分片上。您可以创建更为安全的环境。请将那些需要读写的文件系统置于单独的分区或磁盘分片中,使其与需要以只读方式共享的文件系统分隔开来。


注 - 有关取消共享文件系统之后再重新共享此系统时 NFS 版本 4 如何运行的信息,请参阅在 NFS 版本 4 中取消共享和重新共享文件系统


特定于非文件系统的 share 选项

以下是可以用于 -o 标志的一些选项。

rw|ro

pathname 文件系统针对所有客户机是读写共享或只读共享。

rw=accesslist

文件系统仅供列出的客户机进行读写共享。其他所有请求均被拒绝。从 Solaris 2.6 发行版开始,accesslist 中定义的客户机列表已进行了扩展。有关更多信息,请参见使用 share 命令设置访问列表。可以使用此选项来覆盖 -ro 选项。

特定于 NFS 的 share 选项

以下是可以用于 NFS 文件系统的选项。

aclok

使用此选项,可以将支持 NFS 版本 2 协议的 NFS 服务器配置为对 NFS 版本 2 客户机进行访问控制。如果不使用此选项,则会为所有客户机提供最低访问权限。如果使用此选项,则客户机具有最高访问权限。例如,在使用 -aclok 选项进行共享的文件系统上,如果某个用户具有读取权限,则所有用户均具有读取权限。但是,如果不使用此选项,本应具有访问权限的客户机也会被拒绝访问。确定是允许较多访问还是较少访问取决于已设置的安全系统。有关访问控制列表 (access control list, ACL) 的更多信息,请参见《Oracle Solaris 管理:安全服务》中的"使用访问控制列表保护 UFS 文件"


注 - 要使用 ACL,请确保客户机和服务器运行的软件支持 NFS 版本 3 协议和 NFS_ACL 协议。如果该软件仅支持 NFS 版本 3 协议,则客户机可获取正确的访问权限,但不能处理 ACL。如果该软件支持 NFS_ACL 协议,则客户机可获取正确的访问权限,并且可处理 ACL。


anon=uid

可以使用 uid 来选择未验证的用户的用户 ID。如果将 uid 设置为 -1,则服务器会拒绝未验证的用户进行访问。通过设置 anon=0 可以授予超级用户访问权限,但是由于此选项允许未验证的用户具有超级用户访问权限,因此请改用 root 选项。

index=filename

用户访问 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
log=tag

此选项可指定 /etc/nfs/nfslog.conf 中的标记,该文件中包含文件系统的 NFS 服务器日志记录配置信息。必须选择此选项才能启用 NFS 服务器日志记录。

nosuid

此选项表示应忽略所有启用 setuidsetgid 模式的尝试。NFS 客户机不能创建启用了 setuidsetgid 位的文件。

public

-public 选项已添加到 share 命令中,以启用 WebNFS 浏览功能。使用此选项在一台服务器上只能共享一个文件系统。

root=accesslist

服务器会向列表中的主机提供超级用户访问权限。缺省情况下,服务器不会向任何远程主机提供 root 访问权限。如果选定的安全模式不是 -sec=sys,则只能在 accesslist 中包括客户机主机名。从 Solaris 2.6 发行版开始,accesslist 中定义的客户机列表已进行了扩展。有关更多信息,请参见使用 share 命令设置访问列表


注意

注意 - 授予其他主机超级用户访问权限会涉及许多安全问题。请慎用 -root= 选项。


root=client-name

client-name 值可用于 AUTH_SYS 验证,以便对照 exportfs(1B) 提供的地址列表来检查客户机的 IP 地址。如果找到匹配项,则可以向共享的文件系统提供 root 访问权限。

root=host-name

对于安全 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 管理:安全服务》中的"配置 Kerberos 客户机"

sec=mode[:mode]

mode 选择获取对文件系统的访问权限所需的安全模式。缺省情况下,安全模式为 UNIX 验证。可以指定多种模式,但是每个命令行一次只能使用一种安全模式。每个 -mode 选项都应用于所有后续的 -rw-ro-rw=-ro=-root=-window= 选项,直至遇到其他 -mode 为止。使用 -sec=none 可将所有用户映射为用户 nobody

window=value

value 选择 NFS 服务器上某个凭证的最长生命周期(以秒为单位)。缺省值为 30000 秒,即 8.3 小时。

使用 share 命令设置访问列表

accesslist 可以包含要拒绝访问的域名、子网号或项,以及标准 -ro=-rw=-root= 选项。由于不需要更改名称空间或维护较长的客户机列表,这些扩展简化了单个服务器上的文件访问控制。

以下命令为大多数系统提供只读访问权限,但是允许 roselilac 进行读写访问:

# share -F nfs -o ro,rw=rose:lilac /usr/src

在下面的示例中,只读访问权限指定给了 eng 网络组中的任意主机。专门为客户机 rose 提供了读写访问权限。

# share -F nfs -o ro=eng,rw=rose /usr/src

注 - 不能同时指定不带参数的 rwro。如果未指定读写选项,则缺省情况下会为所有客户机指定读写访问权限。


要使多台客户机共享一个文件系统,必须在同一行中键入所有选项。针对同一对象多次调用 share 命令时,将仅“记住”最后一个运行的命令。以下命令为三台客户机系统启用读写访问权限,但是仅为 rosetulip 提供以 root 身份访问文件系统的权限。

# share -F nfs -o rw=rose:lilac:tulip,root=rose:tulip /usr/src

共享使用多种验证机制的文件系统时,请确保在正确的安全模式之后包含 -ro-ro=-rw-rw=-root-window 选项。在本示例中,会为名为 eng 的网络组中的所有主机选择 UNIX 验证。这些主机只能以只读模式挂载文件系统。如果主机 tuliplilac 使用 Diffie-Hellman 验证,则它们可以以读写模式挂载文件系统。使用这些选项时,即使主机 tuliplilac 不使用 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 的主机之外的任何主机进行访问。

unshare 命令

此命令可以使之前可供客户机挂载的文件系统变为不可供客户机挂载。取消共享 NFS 文件系统时,将禁止从具有现有挂载的客户机进行访问。文件系统可能仍挂载在客户机上,但是无法再访问其中的文件。除非使用 -t 选项临时取消共享文件系统,否则 unshare 命令会永久删除共享。


注 - 有关取消共享文件系统之后再重新共享此系统时 NFS 版本 4 如何运行的信息,请参阅在 NFS 版本 4 中取消共享和重新共享文件系统


以下是取消共享某个特定文件系统的示例:

# unshare /usr/src

shareall 命令

使用此命令可共享多个文件系统。如果在不带选项的情况下使用此命令,则可以共享 /etc/dfs/dfstab 中的所有项。您可以包括一个文件名来指定其中列出了 share 命令行的文件的名称。如果没有包括文件名,则会检查 /etc/dfs/dfstab。如果使用 "-" 来替换文件名,则可以从标准输入中键入 share 命令。

以下是共享本地文件中列出的所有文件系统的示例:

# shareall /etc/dfs/special_dfstab

unshareall 命令

此命令可使所有当前共享的资源不可用。-F FSType 选项可选择 /etc/dfs/fstypes 中定义的文件系统类型的列表。使用此标志,可以仅选择要取消共享的某些文件系统类型。/etc/dfs/fstypes 中定义了缺省的文件系统类型。要选择特定的文件系统,请使用 unshare 命令。

以下是取消共享所有 NFS 类型的文件系统的示例:

# unshareall -F nfs

showmount 命令

此命令可显示以下内容之一:


注 - showmount 命令仅显示 NFS 版本 2 和版本 3 的导出内容。此命令不显示 NFS 版本 4 的导出内容。


此命令的语法如下:

showmount [ -ade ] [ hostname ]

-a

输出所有远程挂载的列表。每项都包括客户机名称和目录。

-d

输出由客户机远程挂载的目录的列表。

-e

输出共享或导出的文件的列表。

hostname

选择要从中收集信息的 NFS 服务器。

如果未指定 hostname,则会对本地主机进行查询。

以下命令列出了所有客户机以及这些客户机已挂载的本地目录:

# 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

setmnt 命令

此命令可创建 /etc/mnttab 表。mountumount 命令会查阅该表。通常不必手动运行此命令,因为它会在系统引导时自动运行。

nfsref 命令

nfsref 命令用于添加、删除或列出 NFSv4 引用。该命令语法如下所示:

nfsref add path location [ location … ]

nfsref remove path

nfsref lookup path

path

选择重解析点的名称。

location

标识一个或多个要与重解析点关联的 NFS 或 SMB 共享文件系统。