利用yum安装NFS服务器
yum install nfs-utils rpcbind -y
配置NFS服务器
nfs服务器配置相当简单,只需在NFS的主配置文件/etc/exports中进行设置,然后启动nfs服务器即可,nfs服务器有启动顺序,必须先启动rpcbind服务
配置/etc/exports文件
NFS共享目录的主配置文件/etc/exports,并且共享目录的访问权限和允许访问的主机等参数也在该文件中被定义。出于安全性的考虑,为了防止意外输出任何资源,该文件默认配置为空,即没有任何共享目录。
在/etc/exports文件中,每一行代表一个共享目录,其命令格式为:
<输出目录> [客户端(选项1,选项2,……)] [客户端(选项1,选项2,……)]
其中输出目录与客户端之间、客户端与客户端之间要有空格,但客户端与选项之间无空格,除了输出目录是必选参数之外,其他参数均为可选。
输出目录:指NFS服务器提供给客户端使用的目录。
客户端:指网络中可以访问NFS服务器共享目录的计算机,可以使用主机名或IP地址直接进行指定,也可以配合通配符“*”对子网或域中的计算机进行指定。如下:
*.abc.com abc.com域中全部计算机
test 名为test的计算机
10.23.32.11/255.255.255.0 指定子网中的所有主机
192.168.10.1 指定ip地址的主机
www.baidu.com 指定域名的主机
* 所有主机
选项:用来设置输出目录的访问权限、用户映射等。/etc/exports中使用的选项比较多如下:
ro 默认设置,指定输出目录以只读方式被共享,客户端只能读取,无权写入
rw 设置输出目录可读可写
async 异步方式,将数据先存储在缓冲区,需要时(列如收到一个请求)再将数据写入磁盘
syns 将数据同步写入缓冲区和磁盘中,虽然效率比较低,但可以确保数据的一致性
secure 限制客户端只能从小与1024的TCP/IP端口连接NFS服务器,默认的中级或高级安全防火墙会关闭这些端口
insecure 允许客户端大于1024的TCP/IP端口连接NFS服务器
wdelay 默认设置,检查是否有一台以上的计算机将要执行对一个共享目录的写操作,如果有则将这些操作集中执行
no_wdelay 若有写操作则立即执行
hide 默认设置,当设置共享一个目录时,不共享该目录中的子目录
no_hide 当设置共享目录时,将该目录中的子目录一并共享
subtree_check 默认设置,如果输出目录是一个子目录,则NFS会检查其父目录的权限
no_subtree_check 如果输出目录是一个子目录,则NFS不检查其父目录的权限,这样会提高效率。
insecure_locks 对于有些旧版的NFS客户端,不会检查用户是否有权读取一个被请求的文件
secure_locks 对于有些旧版的NFS客户端,检查用户在一个被请求的文件上的权限
all_squash 将远程访问的所有普通用户及其所属的用户组都映射为匿名用户和用户组(通常为nfsnobody).该选项适用于一些公共目录(列如FTP目录),且用户的访问权限应该设置得越低越好
no_all_squash 不将远程访问的所有普通用户及其所属的用户组映射为匿名用户和用户组
root_squash 默认选项,将root用户及其所属的用户组都映射为匿名用户和用户组
no_root_squash 不讲root用户及其所属的用户组映射为匿名用户和用户组,客户端上的root用户可以拥有与在服务器上的root一样的权限。该设置会引发严重的安全性问题。
anonuid=xyz 指定NFS服务器的/etc/passwd文件中的匿名用户的UID
anongid=xye 指定NFS服务器的/etc/group文件中的匿名组的GID
例如,配置一台NFS服务器,服务器的IP地址为192.168.100.1,共享目录为/tmp/share,要求以只读方式允许客户端访问,客户端IP地址为192.168.100.2,则NFS服务器端需修改配置文件如下:
/nfs/share 192.168.8.0/24(rw) *(ro)
表示NFS服务器将/nfs/share设为共享目录,允许子网192.168.8.0/24内的所有主机进行读/写操作,而其他主机只具有读取的权限
/nfs/teacher 192.168.10.10(rw)
表示NFS服务器将/nfs/teacher设为共享目录,只允许192.168.10.10主机执行读/写操作
/nfs/root *.baidu.com(ro,no_root_squash)
表示NFS服务器将/nfs/root设为共享目录,且baidu.com域中所有主机只能以读方式访问该目录,且对于客户端为root用户的情况,不将root映射为匿名用户。
/media/cdrom 192.168.8.*(ro)
表示NFS服务器将/media/cdrom设为共享目录,192.168.8.0/24子网中所有用户都可以读取该共享目录。
利用exportfs命令修改设置
NFS服务器启动后,可以使用适当的exportfs命令对NFS服务器的输出目录进行维护。
exportfs命令格式如下:
exportfs [选项]
-r 重新读取/etc/exports文件中的设置,并使设置生效,而不重新启动NFS服务
-u 停止输出共享目录
-v 显示当前的共享目录及详细的选项设置
使用exportfs -v命令显示当前设置的共享目录
这里表示所有的设置已经生效,同时exportfs命令将所有默认选项设置也一并显示出来。
当修改了/etc/exportfs文件后,可以使用命令exportfs -rv使其生效,而无需重启NFS:
如果需要停止NFS服务器当前的所有共享目录,则可以使用命令exportfs -au或exportfs -v: