无法写入挂载点 (nfs-server),出现“权限被拒绝”

ale*_*xus 34 nfs

我正在尝试NFS在两个 RHEL7 节点之间进行配置:

第一个节点:

[root@ip-10-164-175-246 ~]# cat /etc/redhat-release 
Red Hat Enterprise Linux Server release 7.0 (Maipo)
[root@ip-10-164-175-246 ~]# rpm -q nfs-utils
nfs-utils-1.3.0-0.el7.x86_64
[root@ip-10-164-175-246 ~]# cat /etc/exports
/var/www/html/  ip-10-184-161-46.ec2.internal(rw)
[root@ip-10-164-175-246 ~]# 
Run Code Online (Sandbox Code Playgroud)

第二个节点:

[root@ip-10-184-161-46 ~]# mount ip-10-164-175-246.ec2.internal:/var/www/html/ /mnt/
[root@ip-10-184-161-46 ~]# touch /mnt/$$
touch: cannot touch ‘/mnt/3326’: Permission denied
[root@ip-10-184-161-46 ~]# 
Run Code Online (Sandbox Code Playgroud)

为什么我不能通过/mnt/NFS写入任何内容?

Chr*_*rel 42

你的出口使用root_squash吗?来自CentOS 文档

root_squash — 防止远程连接的 root 用户拥有 root 权限,并为他们分配用户 nfsnobody 的用户 ID。这有效地将远程 root 用户的权力“压缩”到最低的本地用户,防止未经授权更改远程服务器上的文件。或者, no_root_squash 选项关闭根压缩。要压缩每个远程用户,包括 root,请使用 all_squash 选项。要指定用于来自特定主机的远程用户的用户和组 ID,请分别使用 anonuid 和 anongid 选项。在这种情况下,可以创建一个特殊的用户帐户,供远程NFS用户共享并指定(anonuid=,anongid=),其中是用户ID号,是组ID号。

您需要添加标志no_root_squash以禁用此功能,因为它默认处于启用状态。

  • 我在 RHEL 网站上找到了这篇文章: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Security_Guide/sect-Security_Guide-Securing_NFS-Do_Not_Use_the_no_root_squash_Option.html 。看来使用 no_root_squash 根本不安全。如果我们想遵循他们的建议,解决方案是什么? (3认同)