NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。
注:首次部署当发现多个nfs运行时,直接用yum remove nfs*全卸载,然后再安装
a.安装:
服务器端:yum install -y rpcbind
yum install -y nfs-utils
客户端:yum install -y nfs-utils
b.服务器端写配置文件
[root@Herry ~]# vim /etc/exports
/houzi 192.168.8.101(rw,sync,no_root_squash) #/houzi是需要共享的目录
#192.168.8.101是客户端IP,也可以是一个网段
#括号里的都是权限,客户端对这个共享目录可读可写,同步到磁盘,且不限制客户端root)
c.在服务器端启动rpcbind和nfs-utils服务
/etc/init.d/rpcbind
/etc/init.d/nfs restart
d.客户端挂载共享目录
mount -t nfs -o nolock,nfsvers=3 192.168.8.103:/houzi /data #192.168.8.103是服务端IP
#/data是客户端本地的目录
e.服务器端将共享目录权限设置成777
chmod 777 /houzi
客户端以普通用户Mysql进入/data创建文件9.sh
no_root_squash 没有限制客户端的root,客户端以root身份创建的文件,在服务器端文件所属主组都是root;
客户端以UID为501的mysql身份去创建文件,服务器端则以UID为501的aop身份对应,如果服务器端没有对应的UID,则直接显示数字;
root_squash :服务器端设置成/houzi 192.168.8.101(rw,sync,root_squash,anonuid=502,anongid=502)
客户端以root权限去写文件时,服务器端就将该文件限制成服务器端502属主属组;
以普通用户UID为501的Mysql身份去写文件时,服务器端默认将自己的对应的501属主属组aop赋予这个文件。
all_squash:客户端以root身份创建4.sh,以mysql身份创建5.sh,在服务器端都限制成UID为502的php-fpm
服务器端/etc/exports文件内容/houzi 192.168.8.101(rw,sync,all_squash,anonuid=502,anongid=502)
将客户端所有的用户创建的文件的属主属组都限制成服务器端的502
如图:
注: 如果同时指定no_root_squash与all_squash 用户将被压缩为 nfsnobody,如果设置了anonuid、anongid将被压缩到所指定的用户与组,即no_root_squash不生效 ;
如果服务器端修改了/etc/exports文件,
a(或者直接exports -arv重新读取/etc/exports内容)则需要重启/etc/init.d/nfs restart;
b.然后再客户端重新挂载共享目录使生效
原文:http://9237101.blog.51cto.com/9227101/1910493