NFS:进程和监听端口nfsd 2049/tcp
辅助类的服务:rpc portmapper
rpc.mounted:认证
rpc.locked:加锁
rpc.statd:状态
准备三台主机,IP地址分别为:
192.168.200.2 nfs服务器端(proxy)
192.168.200.100 nfs客户端1(web01)
192.168.200.200 nfs客户端2(web02)
在服务器端检查内核模块是否存在nfsd:lsmod | grep nfs
在服务器端安装nfs-utils: yum install nfs-utils
nfs-utils包为内核NFS服务器提供了一个守护程序和相关工具,它们提供了比大多数用户使用的传统Linux NFS服务器
高得多的性能。这个包也包含showmount程序。showmount请求在远程主机上的mount守护程序有关在此远程主机上的NFS服务器的信息。例如,showmount可以显示在那台主机上哪些客户端被挂载。这个包也包含mount.nfs和umount.nfs程序。
输出共享文件:/etc/exports或/etc/exports.d/*
格式:
/PATH/TO/SOME_DIR client1(export_options, ...) client2(export_options,...)
clients:
单主机:ipv4|ipv6|FQDN;
网络:地址/网络掩码,同时长短格式的掩码;
wildcards:主机名通配,例如:*.bl15u1.com;
netgroups:NIS域内的主机组; @group_name
anonymous: 使用*通配所有主机
general Options:
ro:只读
rw:同步
sync:同步
async:异步
secure:客户端端口小于1024,否则使用insecure选项
User ID Mapping:
root_squash:压缩root用户,一般指将其映射为nfsnobody
no_root_squash:不压缩root用户
all_squash:压缩所有用户
anonuid and anongid:将压缩的用户映射为此处指定的用户
showmount: 显示一个NFS服务器的挂载信息。
选项:
1)-a|--all:列出客户端主机名称或IP地址以及在主机上被挂载的目录。此信息不应该被认为可靠的。
2)-d|--directory:只列出由某个客户端挂载的目录。
3)-e|--exports:显示NFS服务器的导出列表
showmount -e NFS_SERVER_IP:查看指定的nfs服务器上导出的所有文件系统
showmount -a:在nfs服务器上查看nfs服务的所有客户端列表
exportfs:维护导出的NFS文件系统的表
选项:
-r: 重新导出所有目录,把/var/lib/nfs/etab和/etc/exports以及在/etc/exports.d下文件同步。这个选项从/var/lib/nfs/etab
移除那些已经被从/etc/exports或者在/etc/exports.d下文件删除的条目,并且从内核导出表移除那些不再有效的条目。
-a: 导出或者不导出所有目录。
-u:取消导出挂载信息
-v:显示详细信息
在服务器端创建一个新用户,并且设置密码:
查看nfsuser的uid和gid:
在服务器端的根目录下创建一个目录data,并且更改这个目录的所有者和所属组为nfsuser和nfsuer:
192.168.200.100(web01)客户端拥有读写权限,所属主UID和所属组GID映射成本地的1002和1002
192.168.200.200(web02)客户端只有写权限,所属主UID和所属组GID映射成本地的1002和1002
启动nfs服务端并且查看服务器导出文件系统信息:
systemctl start nfs
exportfs -v
在客户端也需要安装nfs-utils软件包:yum install nfs-utils
在客户端192.168.200.100(web01)和192.168.200.200(web02)上显示nfs服务端导出信息信息:
在web01上挂载nfs文件系统,并进行测试,在此客户端可以新建文件,拥有写权限:
在web02上挂载nfs文件系统,并进行测试,此客户端对挂载的nfs文件系统没有写权限:
在nfs服务器端,查看导出的目录,在客户端web01上创建的文件的所有者和所属主被映射成服务器上用户名为nfsuser,用户组为nfsuser的用户: