0基础跟我学linux服务器 2、怎么配置nfs和权限
1、首先我们得知道NFS的配置文件在哪里。NFS的配置文件在/etc/exports

3、我们烂瘀佐栾这里详细的了解下第三个参数,怎么使用?ro/rw,ro是只读,rw是读写sync/async(同步/异步),具体可以看man exports,什么是同步和异步,说简单点就是,不管你在nfs目录上写了多少数据,同步的话,就实时同步到nfs服务器,异步指的就是暂时把数据保存在内存里,适当的时候再写到硬盘里(例如缓冲区满了,再者用户断开了nfs,而用户又改变了nfs的文件,那么这时就可以写数据了。)异步可以提高服务器性能。no_wdelay:若有写操作则立即执行,应与sync配合使用(wdelay为延迟的意思,意思就是no wdelay不延迟)root_squash/no_root_squash(压缩root为来宾/不压缩root为来宾)为什么要用压缩这个词呢?因为squash这个单词自身就是压缩的意思。什么叫压缩root为来宾,也就是说如果你指定了root_squash,如果root登陆了nfs,那么他在这个nfs并没有root的超级权限,因为他被压缩成了来宾。那么no_root_squash呢,就是不压缩root为来宾,也就是说如果root登陆了nfs,那么他具备了所有权限(试想下,如果别的unix登陆了你NFS,把你的文件全删了)。all_squash/no_all_squash(压缩所有用户为来宾/不压缩所有用户为来宾),这个就不细说了,但是要注意一点,nfs默认设置为root_squash和all_squash,也就是说任何人都是来宾用户。subtree:若输出目录是一个子目录,则nfs服务器将检查其父目录的权限(默认设置no_subtree:即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率secure:限制客户端只能从小于1024的tcp/ip端口连接nfs服务器(默认设置)insecure:允许客户端从大于1024的tcp/ip端口连接服务器图为man exports

5、你发现没有,nfs没有任何的参数来做这样一个事,例如只指定某个特定的用户可以写我们的某个nfs目录,其他用户只能读。如果我们想这样做,只有两个办法:第一:通过主机限制。我们可以写成,/mynfs *(ro) 指定的IP(rw) 目录权限需要设置正确(例如其他用户我们设置为rw-)第二:通过no_all_squash(在unix上,只要有对应的uid,就具备对应目录权限),这个的话,如果在windows上挂载就很尴尬咯我们这就开始第二个方法。在之前,小编要说清楚一点,关于权限的优先级的问题。例如,我们的mynfs的权限是rwxr--r--,而这个文件的所有者是root,即使我们在exports中写了rw,也是不能写的。那如果mynfs的权限是rwxr--rw-的话,而我们在exports中只写了ro,那么也是不能写的。目录权限优先于配置文件设置的权限,这点请切记。例如,我们现在想要让binn这个用户具备nfs目录的所有权限(读写和执行),其他用户只能读。关于权限的问题,我们只需要把nfs目录所有者设置为binn。chown binn mynfs


8、/etc/init.d/nfs restart重启nfs服务

10、我们先用root权限去访问下我们的nfs,这时发现竟然没有权限,可是刚刚我们明明在nfs服务器上,chmod o=r /mynfs。这时请注意,我们只给了r读的权限,并没有给x执行的权限,而cd改变当前目录,确实要x权限的,不相信我们可以ls看看。


13、cd /mnt然后touch heymynfs。是不是成功了?本节到这里就结束了,大家要自己动手才能体会到unix的精髓。下节小编会教大家怎么在网络上查看nfs服务器和使用nfs的一些工具。
