NFS即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机中间通过TCP/IP网络共享资源。一般位于内网之中。
提到NFS 相关联的是 RPC服务 在centos5.x下叫portmap , 在centos6.x下角rpcbind
NFS的安装: yum -y install nfs-utils rpcbind
在这里有一点 我们要先启动 rpc然后启动nfs 建议客户端同时安装nfs,必须安装rpc(可以不启动nfs服务)。
NFS 的配日志文件是 /etc/exports 有可能什么东西都没有需要自己创建。
例:/data 192.168.1.*(rw,sync,all_squash)
其中NFS配置文件 的参数(小括号里的内容)
1、rw 代表读写权限 ro代表只读权限
2、sync 请求或写入数据时,数据同步写入NFS server 的硬盘中(这样数据安全性增加,性能有一定影响)
3、async 异步写入,写入数据会先写到内存,等硬盘有空档的时候,再写入硬盘,会提升写入速率,但是数据有可能丢失。
4、all_squash 不管访问共享目录的用户身份如何,客户端访问都被压缩成匿名用户。
客户端mount 的参数
默认挂载 例: mount -t nfs 192.168.1.1:/data /buyi(目录必须提前存在)
mount -o 后可加参数
noatime 不改变文件的访问时间
nodiratime 不改变目录的访问时间
nosuid 不希望在我们的文件系统上做suid
noexec 不能执行二进制文件
nodev 不可以创建一个类似的结构
可以按挂载分类为:
安全挂载参数:
例:mount -t nfs -o nosuid,noexec,nodev,rw 192.168.1.1:/data /buyi
性能优化挂载参数:
例:mount -t nfs -o noatime,nodiratime, 192.168.1.1:/data /buyi
安全加优化的挂载参数:
例:mount -t nfs -o noatime,nodiratime,nosuid,noexec,nodev,rw 192.168.1.1:/data /buyi
其中rpc的固定端口是 111
nfs的固定端口是2049 (还有一些随机端口)
/var/lib/nfs/etab (可以查看分享出来目录的完整权限)
解决客户端不能写的问题:在客户端创建文件会有这样的报错(touch: cannot touch `b.txt': Permission denied)提示没有目录权限。
这是只要在服务端将属主改成 uid是65534的用户名(nfsnobody)就可以解决了。