1.使用nfsnobody
■
___________________________________________________________
--------------------安装
yum install nfs-utils rpcbind -y
#服务端和客户端安装
--------------------服务端配置
mkdir /data
#创建共享目录
chown -r nfsnobody:nfsnobody /data
#授权nfs用户
vim /etc/exports
#编辑配置文件
/data 192.168.1.0/24(rw,sync)
/etc/init.d/rpcbind start
/etc/init.d/nfs start
#启动服务,必须先启动rpc
showmount -e localhost
#本地showmount测试
----------------------客户端配置
mount -t nfs 192.168.1.203:/data /mnt
df
filesystem 1k-blocks used available use% mounted on
192.168.1.203:/data 49097600 1268480 45335040 3% /mnt
----------------------测试
touch test.txt
ll
-rw-r--r--. 1 nfsnobody nfsnobody 0 2月 20 2016 test.txt
2.使用固定uid用户
id szk #在服务端和客户端查看是否有此用户
uid=500(szk) gid=500(szk) 组=500(szk)
mkdir /szk
chown -r szk:szk /szk
#创建和授权目录
echo "/szk 192.168.1.0/24(rw,sync,all_squash,anonuid=500,anongid=500)" >> /etc/exports
/etc/init.d/nfs reload
#修改配置文件并重载服务
showmount -e localhost
#本地测试
export list for localhost:
/szk 192.168.1.0/24
/data 192.168.1.0/24
--------------------客户端挂载测试
mkdir /szk
mount -t nfs 192.168.1.203:/szk /szk
df -h
192.168.1.203:/szk 47g 1.3g 44g 3% /szk
touch /szk/test.txt
ll /szk/test.txt
-rw-r--r--. 1 szk szk 0 2月 20 2016 test.txt
3.相关优化参数
安全性能优化参数,禁止给予执行权限,禁止更新文件的inode时间戳及加大传输size
mount -t nfs -o nosuid,noexec,nodev,noatime,nodiratime,intr,rsize=131072,wsize=131072 192.168.1.203 /data/mnt
4.开机启动及挂载
echo "/etc/init.d/rpcbind start" >> /etc/rc.local
echo "/etc/init.d/nfs start" >> /etc/rc.local
#统一运维规范将服务的启动命令放置到/etc/rc.local文件中,而不是用chkconfig管理。当运维人员离职及业务迁移,可以很直观的看到相关服务
echo "mount -t nfs 192.168.1.203:/data /mnt" >> /etc/rc.local
为什么不在fstab中挂载?
#因为fstab启动优于网络模块,挂载网络文件系统时,无法在fstab中挂载成功,故放置在/etc/rc.local中
为什么需要先开机先开nfs服务端,关机先关客户端?
因为当客户端优于服务端启动时,会导致无法正常挂载;当服务器优于客户端关闭,会导致客户端无法正常关闭