LINUX 中nfs 出现问题permission denied

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LINUX 中nfs 出现问题permission denied相关的知识,希望对你有一定的参考价值。

我用的mount //ip地址/share  /home/share出现了问题 

如果你以前没有装过nfs服务的话那么首先要下载几个包:
#apt-get install nfs-kernel-server
#apt-get install nfs-common //可选
安装nfs-kernel-server的时候系统会自动下载另外一个包portmap;

安装结束后,配置文件是/etc/exports,主要是设置服务器的共享目录以及权限的,
在后面加上你的共享目录即可。我的配置文件如下:
# /etc/exports: the access control list for filesystems which may be exported
# to NFS clients. See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes hostname1(rw,sync) hostname2(ro,sync)
#
# Example for NFSv4:
# /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt)
# /srv/nfs4/homes gss/krb5i(rw,sync)
#
/arm9test 127.0.0.3(rw,sync,no_root_squash)
/arm9test 127.0.0.2(rw,sync,no_root_squash)

其中/arm9test表示服务器要共享的目录,把这个改成你要共享的目录就可以了,127.0.0.1和127.0.0.2都是服务器所允许访问的主机 名,就是说你可以设置哪台主机可以访问你的共享目录,如果用一个“*”来代替这个ip地址的话就是允许所有的主机访问你的共享目录,后面的几个参数就不说 了。
设置好配置文件后,保存退出,执行
#sudo exportfs -r 更新exportfs
执行这个命令的时候可能会提示一些错误,如下:
lmz@lmz-desktop:~/arm9$ sudo exportfs -r
exportfs: /etc/exports [1]: Neither 'subtree_check' or 'no_subtree_check' specified for export "218.192.161.80:/arm9test".
Assuming default behaviour ('no_subtree_check').
NOTE: this default has changed since nfs-utils version 1.0.x
exportfs: /etc/exports [2]: Neither 'subtree_check' or 'no_subtree_check' specified for export "218.192.161.65:/arm9test".
Assuming default behaviour ('no_subtree_check').
NOTE: this default has changed since nfs-utils version 1.0.x
这些问题并不影响后面的使用;
然后重启nfs服务,执行下面命令
#sudo /etc/init.d/portmap restart
#sudo /etc/init.d/nfs-kernel-server restart
成功启动后,执行
#showmount -e
查看NFS server的export list.
我的机器上的输出是:
lmz@lmz-desktop:~/arm9$ showmount -e
Export list for lmz-desktop:
/arm9test 127.0.0.3,127.0.0.2

至此,可以在自己的机子上测试一下nfs服务了,具体过程如下:
#mount serverip:/arm9test /mnt
其中serverip实际上就是服务器的ip,千万不要少了serverip后面的那个“:”哦,会出错的
如果挂载成功的话进到/mnt是可以看到/arm9test下面的文件的,如果出错的话就要查找一下原因了。

在自己电脑上测试通过以后就要把宿主机的共享目录挂载到目标板上了,这样调试程序非常方便,不用把程序传过去就可以直接调试了。挂载过程如下:
首先开机启动2410,进入linux,进入shell,配置板子的ip地址,
#ifconfig eth0 ipaddr
ipaddr就是上面所设置的允许访问共享目录的ip,在这里可以设为127.0.0.2,然后执行嗯命令:
#mount -t nfs -o intr,nolock,rsize=1024,wsize=1024 serverip:/arm9test /mnt/ext1
把serverip改为你自己的主机的ip就可以了,这个时候要确认你的主机的nfs服务已经启动,并且网线已经连接好,正常情况下等一下就可以完成挂载 了
参考技术A 去看下你的服务启动了没,客户端需要portmap服务,服务器端需要portmap、nfs服务。具体做法:
客户端:/etc/init.d/portmap start
服务器端:/etc/init.d/portmap start
/etc/init.d/nfs start
另外/etc/exports配置文件要正确,以下供你参考:
假设你的导出目录是/share,配置文件可以写成
/share *(rw,async,no_root_squash)
参考技术B 在这个命令之前 要加sudo 表示以管理员身份执行这个命令 参考技术C ntfs组加到用户权限中去,或者sudo mount //ip地址/share /home/share也可以。

以上是关于LINUX 中nfs 出现问题permission denied的主要内容,如果未能解决你的问题,请参考以下文章

请教关于nfs挂载时报Permission Denied的原因

nfs mount:reason given by server: Permission denied

请教,NFS mount Permission denied,解决办法

71 Linux 应用程序 permission denied问题

71 Linux 应用程序 permission denied问题

NFS精简版配置方法