NAS 中的 NFS 文件共享问题

NAS 中的 NFS 文件共享问题

我们购买了一台新的 H-NAS 服务器,运行良好。我们为我们的 subversion 存储库创建了 500GB 的空间,并且已创建 nfs 共享。

当我创建新目录时,所有者和组显示如下nobody nogroup

drwxr-xr-x 2 nobody nogroup 2048 2013-07-03 19:09 test

我在 nfs 共享上创建了一个 svn 存储库,当我尝试更改用户和组时,它显示操作不允许。这与 nfs 共享挂载有关吗?

我执行了命令 mount 10.9.17.59:/subversion /subversion来挂载 nfs 共享。它已正确挂载。

当我执行时chown -R www-data:www-data REPO-NAME说操作不允许。

你能告诉我可能是什么问题吗?请帮我解决这个问题。

答案1

NFS(版本 4 之前)仅信任客户端针对任何特定操作(创建文件、读取文件等)声明的 UID 和 GID。这有一个明显的缺点,即恶意客户端可以谎报 UID 和 GID。如果它撒谎说“我是 UID 0”,那么服务器将假定它有权访问导出上的所有文件。这是不好的™。

为了解决这个问题,有一个设置:root_squash。此设置的意思是,“如果您说您的 UID 是 0,我会假设您的意思是 UID nobody。”客户端仍然可以撒谎,但他们不能是 root。这很好,但也有一些缺点:

  • 您无法通过 NFS 更改文件大小(因为只有 root 可以执行此操作)
  • 您不能创建 root 拥有的文件或目录。

本质上,在 NFS 共享中创建 root 拥有的文件和目录的最佳且唯一选择是登录服务器并在本地创建它们。对于所有其他操作,请使用非 root 帐户。

您可能想使用 关闭此保护no_root_squash,但这样做很糟糕™。要了解攻击者窃取或删除所有文件的难易程度,您可以使用NFSpy。至少阅读 README 以了解各种选项的安全隐患。

相关内容