我已经从我的服务器导出了一个共享并将 anonuid 和 anongid 设置为 0(root)。但是,当我在客户端上安装共享时,我的设置似乎不起作用,因为我对 root 拥有的共享中的文件夹的权限被拒绝。
服务器CentOS 5.7
/客户端CentOS 6.4
使用NFS version 3.2.29.
这是我在服务器上的 /etc/exports:
/STORAGE 10.0.5.10(rw,sync,no_subtree_check,no_root_squash,anonuid=0,anongid=0)
Run Code Online (Sandbox Code Playgroud)
基本上,当客户端(10.0.5.10)
连接到服务器时,我需要它的行为就像它是服务器上的 root 一样。在此先感谢您的帮助!!
Ear*_*uby 13
如果您希望 10.0.5.10 上的任何用户以 root 身份显示,请执行以下操作:
/STORAGE 10.0.5.10(rw,sync,no_subtree_check,all_squash,anonuid=0,anongid=0)
all_squash
告诉 NFS,对于从 10.0.5.10 连接的任何用户,忽略他们的实际 UID/GID,而是将它们视为 UID=anonuid 和 GID=anongid。由于您设置anonuid=0,anongid=0
了10.0.5.10
root 访问权限的所有用户/STORAGE
,因此有效地绕过了所有安全性,/STORAGE
并使其对任何似乎来自 10.0.5.10 IP 地址的人的滥用敞开大门。
FWIW,从安全的角度来看,这是一个糟糕的主意。
如果您可以在服务器上使用 NFSv4,您可以启用 UID/GID 映射并/etc/idmapd.conf
在服务器上添加一个静态映射,告诉它应该为 10.0.5.10 上的特定用户授予 NFSv4 服务器上的 root 访问权限。man idmapd.conf
有关设置配置文件的详细信息。在 NFSv4 服务器上设置配置文件后,更新您的导出:
/STORAGE 10.0.5.10(rw,sync,no_subtree_check,no_root_squash)
然后你只想启用映射,清除idmap缓存,并重新启动地图服务:
echo N > /sys/module/nfs/parameters/nfs4_disable_idmapping
nfsidmap -c
service rpcidmapd restart
Run Code Online (Sandbox Code Playgroud)
如果你这样做,你只会给一个用户 root 访问权限,而不是所有用户。
首先,您应该升级到 NFS4,因为每个版本的行为略有不同。
相反,no_root_squash
您将需要使用root_squash
或all_squash
- 这是与此问题相关的唯一相关参数。
all_squash
anonuid
使连接到该共享的任何客户端都使用/参数中给定的 ID anongid
。
归档时间: |
|
查看次数: |
37708 次 |
最近记录: |