我从我的服务器导出了一个共享,并将anonuid和anongid设置为0(root).但是,当我在客户端上安装共享时,我的设置不会正常工作,因为我正在获取root权限所拥有的文件夹中的权限.
使用NFS版本3.2.29的Server CentOS 5.7 / Client CentOS 6.4.
这是我在SERVER上的/ etc / exports:
/STORAGE 10.0.5.10(rw,sync,no_subtree_check,no_root_squash,anonuid=0,anongid=0)
基本上,当客户端(10.0.5.10)连接到服务器时,我需要它的行为就好像它是服务器上的root用户一样.提前谢谢你的帮助!!
解决方法
如果您希望10.0.5.10上的任何用户以root身份显示,您希望这样做:
/ STORAGE 10.0.5.10(rw,all_squash,anonuid = 0,anongid = 0)
all_squash告诉NFS,对于从10.0.5.10连接的任何用户,忽略它们的实际UID / GID,而是将它们视为UID = anonuid和GID = anongid.由于你设置了anonuid = 0,anongid = 0为所有用户提供了对/ STORAGE的10.0.5.10 root访问权限,有效地绕过了/ STORAGE上的所有安全性,并使得任何看起来来自10.0.5.10 IP的人都可以滥用它地址.
FWIW,从安全的角度来看,这是一个可怕的想法.
如果可以在服务器上使用NFSv4,则可以启用UID / GID映射并在服务器上添加静态映射到/etc/idmapd.conf,告诉它应该在NFSv4上为10.0.5.10上的特定用户授予root访问权限服务器. man idmapd.conf有关设置配置文件的详细信息.在NFSv4服务器上设置配置文件后,更新导出:
/ STORAGE 10.0.5.10(rw,no_root_squash)
然后你只想启用映射,清除idmap缓存,然后重启地图服务:
echo N > /sys/module/nfs/parameters/nfs4_disable_idmapping nfsidmap -c service rpcidmapd restart