22.4. 手工导出文件系统

如果不想使用 YaST,应确保以下系统运行在 NFS 服务器上:

要在引导系统时使用脚本 /etc/init.d/portmap/etc/init.d/nfsserver 启动上述服务,请输入命令 insserv /etc/init.d/nfsserverinsserv /etc/init.d/portmap 还需要在配置文件 /etc/exports 中定义应将哪些文件系统导出到哪台主机上。

对于每个要导出的目录,需要有一行来设置哪些计算机可以使用什么权限来访问该目录。此目录的所有子目录也将自动导出。授权计算机通常以全名(包括域名)来指定,但也可以使用通配符,如 *?(其扩展方式与 Bash shell 中的扩展方式相同)。如果在此未指定任何计算机,具有指定权限的所有计算机都可以导入此文件系统。

在计算机名称之后的括号内设置要导出文件系统的权限。表 22.1 “导出文件系统的权限” 中显示了最重要的选项。

表 22.1. 导出文件系统的权限

选项

含义

ro

文件系统以只读权限导出(默认设置)。

rw

文件系统以读写权限导出。

root_squash

这样可以确保导入计算机的用户 root 对此文件系统不具备 root 权限。通过向用户 ID 为 0 (root) 的用户指派用户 ID 65534,可以实现这一点。应将此用户 ID 设置为 nobody(即默认设置)。

no_root_squash

不向用户 ID 65534 指派用户 ID 0,保持 root 权限有效。

link_relative

将绝对链接(以 / 开头)转换为一系列的 ../。此选项仅在装入计算机的整个文件系统时(默认设置)才有用。

link_absolute

保持符号链接不变。

map_identity

客户机和服务器上的用户 ID 完全相同(默认设置)。

map_daemon

客户机和服务器没有匹配的用户 ID。这会促使 nfsd 创建用户 ID 转换表。为此需要启动 ugidd 守护程序。

您的 exports 文件可能如 例 22.1 “/etc/exports” 所示。 mountd 和 nfsd 会读取 /etc/exports。如果对此文件作了任何改动,只有重启动 mountd 和 nfsd 后,更改才能生效。使用 rcnfsserver restart 即可轻松地重启动。

例 22.1. /etc/exports

#
# /etc/exports
#
/home            sun(rw)   venus(rw)
/usr/X11         sun(ro)   venus(ro)
/usr/lib/texmf   sun(ro)   venus(rw)
/                earth(ro,root_squash)
/home/ftp        (ro)
# End of exports