从 NFS 服务器中共享文件又称导出目录。NFS 服务器配置工具可以用来把系统配置成 NFS 服务器。
要使用NFS 服务器配置工具,你必须运行 X 窗口系统,具备根特权,并且安装了 redhat-config-nfs RPM 软件包。要启动这个程序,点击面板上的「主菜单」 => 「系统设置」 => 「服务器设置」 => 「NFS」,或键入 redhat-config-nfs 命令。
要添加 NFS 共享,点击「添加」按钮。如图 23-2所示的对话框会出现。
「基本」活页标签要求以下信息:
「目录」 — 指定要共享的目录,如 /tmp。
「主机」 — 指定要共享目录的主机。请参阅第 23.3.2 节来获取对格式的解释。
「基本权限」 — 指定目录应该有只读权限还是读写权限。
「常规选项」活页标签允许你配置以下选项:
「允许来自高于 1024 的端口的连接」 — 在号码小于 1024 的端口上启动的服务必须以根用户身份启动。选择这个选项来允许根用户以外的用户来启动 NFS 服务。该选项和 insecure 相对应。
「允许不安全的文件锁定」 — 不需要锁定请求。该选项和 insecure_locks 相对应。
「禁用子树检查」 — 如果某文件系统的子目录被导出,但是整个文件系统没有被导出,服务器会检查所请求的文件是否在导出的子目录中。这种检查叫做子树检查(subtree checking)。选择这个选项来禁用子树检查。如果整个文件系统被导出,选择禁用子树检查可以提高传输率。该选项和 no_subtree_check 相对应。
「按要求同步写操作」 — 默认被启用,该选项不允许服务器在请求被写入磁盘前回复这些请求。该选项和 sync 相对应。如果它没有被选择,async 选项会被使用。
「立即强制同步写操作」 — 不推迟写入磁盘的操作。该选项和 no_wdelay 相对应。
「用户访问」活页标签允许你配置以下选项:
「把远程根用户当作本地根用户」 — 按照默认设置,根用户的用户 ID 和组群 ID 都是 0。根权限压缩(Root squashing)把用户 ID 0 和组群 ID 0 映射为匿名的用户和组群 ID,因此客户上的根用户就不会在 NFS 服务器上具备根特权。如果这个选项被选,根用户就不会被映射为匿名用户,客户上的根用户就会对导出的目录拥有根特权。选择这个选项会大大降低系统的安全性。除非绝对必要,请不要选择它。该选项和 no_root_squash 相对应。
「把所有客户用户当作匿名用户」 — 如果该选项被选,所有用户和组群 ID 都会被映射为匿名用户。该选项和 all_squash 相对应。
「为匿名用户指定本地用户 ID」 — 如果「把所有客户用户当作匿名用户」被选,这个选项会让 你为匿名用户指定一个用户 ID。该选项和 corresponds to anonuid 相对应。
「为匿名用户指定本地组群 ID」 — 如果「把所有客户用户当作匿名用户」被选,这个选项会让 你为匿名用户指定一个组群 ID。该选项和 corresponds to anongid 相对应。
要编辑 NFS 共享,从列表中选择它,然后点击「属性」按钮。要删除某个现存 NFS 共享,从列表中选择它,然后点击「删除」按钮。
点击了「确定」来从列表中添加、编辑、或删除某个 NFS 共享后,改变就会立即生效 — 服务器守护进程被重新启动,原有的配置文件被保存为 /etc/exports.bak。新的配置文件被写入 /etc/exports。
NFS 服务器配置工具直接读写 /etc/exports 配置文件。因此,这个文件在使用该工具后可以被手工修改;手工修改了该文件后也可以使用这个工具(假定手工修改时使用了正确的语法)。
如果你更喜欢使用文本编辑器来编辑配置文件或者你没有安装 X 窗口系统,你可以直接修改配置文件。
/etc/exports 文件控制 NFS 服务器要导出哪些目录。它的格式如下:
directory hostname(options) |
唯一需要指定的选项是 sync 和 async 之一(建议使用sync is recommended)。如果指定了 sync,服务器在请求所做的改变被写入磁盘之前就不会回复这些请求。
例如:
/misc/export speedy.example.com(sync) |
会允许来自 speedy.example.com 的用户使用默认的只读权限来挂载 /misc/export,但是:
/misc/export speedy.example.com(rw,sync) |
将会允许来自 speedy.example.com 的用户使用读写权限来挂载 /misc/export。
请参阅第 23.3.2 节来获取关于主机名格式的解释。
请参阅《红帽企业 Linux 参考指南》来获取可以被指定的选项的列表。
小心 | ||
---|---|---|
请谨慎处理 /etc/exports 文件中的空格。如果主机名和括号内的选项之间没有空格,这些选项就只应用于这个主机名。如果在主机名和选项之间有空格,这些选项就是全局应用的。例如,请仔细查看以下行:
第一行给来自 speedy.example.com 的用户以读写权限并拒绝所有其他用户。第二行给来自 speedy.example.com 的用户以只读权限(默认设置),并给予所有其他用户以读写权限。 |
在你每次改变 /etc/exports 的时候,你必须把改变通知给 NFS 守护进程,或使用以下命令来重新载入配置文件:
/sbin/service nfs reload |
主机可以使用以下格式:
单个机器 — 一个全限定域名(能够被服务器解析的),主机名(能够被服务器解析的),或 IP 地址。
使用通配符来指定的机器系列 — 使用 * 或 ? 字符来指定一个字符串匹配。IP 地址中不使用通配符;不过如果反向 DNS 查询失败,它们可能会碰巧有用。在完整域名中指定通配符时,点(.)不包括在通配符中。例如:*.example.com 包括 one.example.com,但不包括 one.two.example.com.。
IP 网络 — 使用 a.b.c.d/z,这里的 a.b.c.d 是网络,z 是子网掩码中的位数(如 192.168.0.0/24)。另一种可以接受的格式是 a.b.c.d/netmask,这里的 a.b.c.d 是网络,netmask 是子网掩码(如 192.168.100.8/255.255.255.0)。
Netgroups — 格式为 @group-name,这里的 group-name 是 NIS netgroup 的名称。
在导出 NFS 文件系统的服务器上,nfs 服务必须在运行。
使用以下命令来查看 NFS 守护进程的状态:
/sbin/service nfs status |
使用以下命令来启动 NFS 守护进程:
/sbin/service nfs start |
使用以下命令来停止 NFS 守护进程:
/sbin/service nfs stop |
要在引导时启动 nfs 服务,使用以下命令:
/sbin/chkconfig --level 345 nfs on |
你还可以使用 chkconfig、ntsysv 或服务配置工具来配置要在引导时启动哪些服务。详情请参阅第21章 。