NFS服务相关


*****由sun公司提出,用来做网络之间文件共享,是一种共享式集群文件系统;红帽具有gfs,Oracle同样具有ocfs,都是具有同等功能。
1、服务器:
nfs 
rpcbind 此为rhel6下的服务,如果是rhel5则是 portmap
2、客户端:
rpcbind

3、假设服务器10.10.10.254.客户端10.10.10.10
在客户端10上查看服务器254上是否存在nfs共享,需要具备条件:
(1)服务器上开启nfs服务
[root@rootbug ~]#/etc/init.d/nfs start
[root@rootbug ~]#/etc/init.d/rpcbind start
(2)客户端
[root@rootbug ~]#/etc/init.d/rpcbind start
(3)在客户端10上执行查看命令
[root@rootbug ~]# showmount -e 10.10.10.254
执行之后将会全部列举出服务器254上的全部通过nfs共享出现的信息,如果无法查看请查看服务器上的防火墙是否关闭

4、portmap或者rpcbind端口为111端口
nfs端口为2049端口

5、服务器上配置nfs共享,配置文件
[root@rootbug ~]#vim /etc/exports
在此空文件中添加需要共享的目录,主要参数有
ro 只读
rw 可读可写 
root_squash代表客户端以nfsnobody用户挂载,默认不写就有
no_root_squash 代表客户端以root用户挂载
sync 同步
async 异步

通过man exports 得知各个参数的作用
# sample /etc/exports file
/ master(rw) trusty(rw,no_root_squash)
/projects proj*.local.domain(rw)
/usr *.local.domain(ro) @trusted(rw)
/home/joe pc001(rw,all_squash,anonuid=150,anongid=100)home/joe pc001(rw,all_squash,anonuid=150,ano
/pub (ro,insecure,all_squash)

(1)例子:
[root@rootbug ~]#vim /etc/exports
/share/iso *(ro) --把/share/iso 共享给*(代表所有IP) ro (代表只读)
/share/iso *(rw) --rw代表可读可写
/share/iso 10.10.10.0/24(ro) --只共享给10.10.10的网段的计算机访问
/share/iso 10.10.10.0/255.255.255.0(ro)
/share/iso 10.10.10.10/255.255.255.255(ro) --定义只10.10.10.10这台计算机可以访问
/share/iso 10.10.10.10(ro)
/share/iso 10.10.10.10/32(ro)10.10.10.254/32(rw) --定义只有10和254这两台可以访问

6、nfs共享的权限
(1)客户端挂载目录的权限为服务端共享目录的权限
(2)nfs服务共享目录的默认权限规定是以nfsnobody这个用户来挂载,查看/etc/passwd可以看到
nfsnobody:x:65534:65534:Anonymous NFSUSEr:/var/lib/nfs:/sbin/nologin

注意:如果做了服务的话,权限要由服务的权限+系统的权限合起来生效

也就是说,客户端是否可以访问,需要防火墙允许,服务允许,系统权限允许,才可以访问

(3)详情如下:
/share/iso *(ro) 默认等于 /share/iso*(ro,root_squash)
--root_squash代表客户端以nfsnobody用户挂载
/test *(rw,no_root_squash)
--表示客户端会以root的身份来挂载服务端的/test目录
/share/iso 10.10.10.10/32(ro,no_root_squash)10.10.10.254/32(ro,root_squash)
--no_root_squash代表客户端以root用户挂载,就算是10对/share/iso有w权限,也不能写,因为ro参数确定只读

/share/iso10.10.10.10/32(rw,anonuid=533,anongid=534) --指定客户端以uid=533,gid=534挂载,但不要指定一个服务器上面不存在的uid或gid,否则客户端会以无头用户或组来访问

--修改了/etc/exports以后,要重启服务使之生效,不用重启服务,使修改过的配置文件生效
[root@rootbug~]#exportfs -arv --重新读取/etc/exports文件里的共享,并导入
-auv --卸载/etc/exports文件里的共享,别人showmount -e看不到,也挂载不了










本文转自 天乐 51CTO博客,原文链接:http://blog.51cto.com/tianlegg/1603432,如需转载请自行联系原作者
上一篇:Redis客户端操作之Jedis


下一篇:NFS服务器搭建之/etc/exports文件配置权限参数