[b]1,服务器端软件:安装nfs-utils和portmap(rpcbind)
[/b]nfs-utils: 提供rpc.nfsd 及 rpc.mountd这两个NFS DAEMONS的套件
portmap: NFS其实可以被看作是一个RPC SERVER PROGRAM,而要启动一个RPC SERVER PROGRAM,都要做好PORT的对应工作,而且这样的任务就是由PORTMAP来完成的。通俗的说PortMap就是用来做PORT的mapping的。
NFS需要启动的DAEMONS:参考[url=http://pic.dhe.ibm.com/infocenter/aix/v7r1/topic/com.ibm.aix.commadmn/doc/commadmndita/nfs_listdaemons.htm]NFS daemons[/url]
[list]
[*]pc.nfsd:主要复杂登陆权限检测等
必须[/*]
[*]portmap:处理RPC程序客户端和服务器端的端口对应
必须[/*]
[*]rpc.mountd:负责NFS的档案系统,当CLIENT端通过rpc.nfsd登陆SERVER后,对clinet存取server的文件进行一系列的管理
必须[/*]
[*]lockd:处理通过RPC包的锁定请求[/*]
[*]statd:为nfs锁定服务提供crash恢复功能[/*]
[*]rquotad:处理当用户通过nfsmount到远程服务器时的配额[/*]
[*]
守护进程启动顺序:rpc.portmap, rpc.mountd, rpc.nfsd, rpc.statd, rpc.lockd (新版本会自动跟着nfsd启动起来), rpc.rquotad[/*]
[/list]
[b]NF服务器端命令: [/b]
•yum install nfs-utils portmap
•chkconfig rpcbind on
#chkconfig:更新和查询各运行级别的系统服务
•chkconfig nfs on
•service rpcbind start
•service nfs start
2,服务器端配置文件/etc/exports:指定要共享的目录及权限 man exports
[url=http://www.1sucai.cn/article/52006.htm]NFS 学习笔记[/url]中关于nfs客户连接用户身份的描述,没有验证过下述的描述:
•客户端连接时候,对普通用户的检查,NO.1如果明确设定了普通用户被压缩的身份,那么此时客户端用户的身份转换为指定用户,NO.2如果NFS server上面有同名用户,那么此时客户端登录账户的身份转换为NFS server上面的同名用户,NO.3如果没有明确指定,也没有同名用户,那么此时 用户身份被压缩成nfsnobody
•客户端连接的时候,对root的检查,NO.1如果设置no_root_squash,那么此时root用户的身份被压缩为NFS server上面的root,NO.2如果设置了all_squash、anonuid、anongid,此时root 身份被压缩为指定用户,NO.3如果没有明确指定,此时root用户被压缩为nfsnobody,NO.4如果同时指定no_root_squash与all_squash 用户将被压缩为 nfsnobody,如果设置了anonuid、anongid将被压缩到所指定的用户与组
[b]3,防火墙设置修改 [/b]
默认情况下,CentOS6服务器版安装完成后,防火墙iptables配置中只放开了22端口。
在nfs配置文件/etc/sysconfig/nfs中指定nfs服务相关端口,并修改防火墙放开相应端口
[url=https://access.redhat.com/knowledge/docs/en-US/Red_Hat_Storage_Software_Appliance/3.2/html/User_Guide/ch14s04s06.html]mount command fails with NFS server failed error[/url].
Disable name lookup requests from NFS server to a DNS server.
or NFS version used by the NFS client is other than version 3.
7,exports配置文件中目录权限属性设置为rw(默认为root_squash),但是在客户端mount目录执行touch命令时报错误:touch: cannot touch `a': Permission denied。解决:
•服务器端共享目录权限查看ll -d /home
•修改服务器端共享目录权限chown 760 /home(文件所有者root有全权限、文件所有组用户有读写权限、其他用户无权限,然后把目录的组设置为nfsnobody)
•修改服务器端共享目录权限组拥有者为nfsnobody(cat /etc/passwd | grep nob)
•chgrp nfsnobody /home
•成功在客户端创建新的文件!