您的位置:首页 > 其它

NFS文件无法写入的权限问题

2017-10-19 14:02 393 查看
http://www.blogjava.net/gf7/archive/2012/12/12/392843.html

环境:

OS:Red Hat Linux As 5

1.服务器上创建共享目录
mkdir 

doc_share

2.编辑exports文件
vim /etc/exports
写入
/doc_share 

192.168.2.131/255.255.255.0(rw,sync)
格式是:

要共享的目录 

共享的IP及掩码或者域名(权限,同步更新)

3.启动服务
/etc/init.d/portmap restart

/etc/init.d/nfs restart

chkconfig nfs 

on

chkconfig portmap on

然后关闭防火墙以及更改Selinux关于NIS的选项
/etc/init.d/iptables stop (防护墙服务关闭)
chkconfig iptables off
system-config-selinux (设置selinux)

查看共享的东西
[root@rac1 

/]# exportfs -rv

exporting 192.168.2.131/255.255.255.0:/doc_share

试着在本机看能否加载
mount 

192.168.2.131:/doc_share /mnt

[root@rac1 doc_share]# echo 

aa>aa.txt

[root@rac1 doc_share]# ls

aa.txt

[root@rac1 /]# cd 

/mnt

[root@rac1 mnt]# ls

aa.txt

4.客户端

手工mount:
mount -o nolock 192.168.2.131:/doc_share 

/mnt
这个时候可以看到在节点1上内容了.
[root@rac2 

mnt]# cd /mnt

[root@rac2 mnt]# ls

aa.txt

自动mount:

编辑fstab文件,实现开机自动挂载

mount -t nfs IP:/目录 挂载到的目录 

(此为临时挂载)

如:mount -t nfs 

192.168.0.9:/doce /doc
vim /etc/fstab 添加如下内容
192.168.2.131:/doc_share /mnt             nfs     

defaults        0 0

相关的一些命令:

showmout命令对于NFS的操作和查错有很大的帮助.

showmout 

-a:这个参数是一般在NFS SERVER上使用,是用来显示已经mount上本机nfs目录的cline机器.

-e:显示指定的NFS 

SERVER上export出来的目录.

例如: 
showmount -e 192.168.0.30 

Export list for localhost: 

/tmp * 

/home/linux *.linux.org 

/home/public (everyone) 

/home/test 192.168.0.100

exportfs命令:

如果我们在启动了NFS之后又修改了/etc/exports,是不是还要重新启动nfs呢?这个时候我们就可以用exportfs命令来使改动立刻生效,该命令格式如下:

exportfs 

[-aruv] 

-a :全部mount或者unmount /etc/exports中的内容 

-r :重新mount 

/etc/exports中分享出来的目录 

-u :umount 目录 

-v :在 export 

的时候,将详细的信息输出到屏幕上.

具体例子:
[root @test root]# exportfs 

-rv <==全部重新 export 一次! 
exporting 

192.168.0.100:/home/test 

exporting 192.168.0.*:/home/public 

exporting 

*.the9.com:/home/linux 

exporting *:/home/public 

exporting *:/tmp 

reexporting 192.168.0.100:/home/test to kernel

exportfs -au 

<==全部都卸载了
-------------------------------------------------------------------------------

今天在机器上配置NFS文件系统,在/etc/exports中加入以下信息:

    /testfs 10.0.0.0/8(rw)

    重启NFS服务以后,在客户机通过mount -o rw -t nfs 10.214.54.29:/testfs /rd1命令将网络文件mount到本地。执行完成之后,目录是可以访问了,但无法写入。感觉有点奇怪,明明在命令中指定可以写入了。于是到网上搜索资料,发现exports目录权限中,有这么一个参数no_root_squash。其作用是:登入 NFS 主机使用分享目录的使用者,如果是 root 的话,那么对于这个分享的目录来说,他就具有                      root 的权限!。默认情况使用的是相反参数                    
root_squash:在登入 NFS 主机使用分享之目录的使用者如果是 root 时,那么这个使用者的权限将被压缩成为匿名使用者,通常他的                      UID 与 GID 都会变成 nobody 那个身份。

    因为我的客户端是使用root登录的,自然权限被压缩为nobody了,难怪无法写入。将配置信息改为:

    /testfs 10.0.0.0/8(rw,no_root_squash)

    据说有点不安全,但问题是解决了。 

    另外,在测试NFS文件系统时,会经常mount和umount文件,但有时会出现device is busy的错误提示。你肯定感到很奇怪,我明明没有使用啊,看看你当前所在的目录,是不是在mount的文件目录中?回退到上层目录重新umount,是不是OK了?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐