在我的NFS服务器上,我定义了以下导出:
#NFS exports Database
/shared -alldirs -network=192.168.1 -mask=255.255.255.0
在我的NFS客户端上:
192.168.1.7:/shared /shared nfs rw 0 0
显然,作为服务器上的root,我可以做任何我想做的事情。但是,在客户端上,我的普通用户'gabe'可以更改nfs挂载(假设我有权限),但root不能。
作为我的普通用户:
gabe@client$ cd /shared
gabe@client$ ls -l
total 8
drwxrwxrwx 4 gabe wheel 512 Mar 20 19:20 tmp
gabe@client$ cd tmp
gabe@client$ touch test.txt
gabe@client$ rm test.txt
作为根:
# cd /shared/tmp
# touch test.txt
touch: test.txt: Permission denied
同样,这一切都在NFS客户端上进行,我怀疑它可能与-maproot选项有关。这是我第一次设置NFS,我刚刚注意到了这种特殊性。我现在将做一些阅读,看是否能解决这个问题,但是如果有人有任何见识,我将不胜感激。
NFS的设计思想是,用户名和组ID在网络上的所有计算机上都应相同。对于普通用户,这没问题。但是root的UID始终为0,仅因为您在一个盒子上拥有root,并不意味着您应该对网络上的每台计算机都具有root访问权限。
因此,NFS特别对待根。默认情况下,root映射到nobody
用户,该用户通常没有写访问权限。该-maproot
选项使您可以更改root的处理方式。BSD-maproot=root
与Linux的no_root_squash
选项相对应。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句