过去几天我一直遇到 NFS 问题,确实需要一些帮助。
我的设置:
NAS 存储: Synology,NFS 导出 /volume1/data
Nextcloud 应用服务器: Debian,NFS 客户端安装在 /mnt/storage_cloud
挂载 NFS 4.1 导出工作正常,我可以以 root 用户身份访问具有读/写权限的所有数据。但是,www-data 用户(运行 Nextcloud 应用程序)根本无法访问该目录。
到目前为止我已经尝试过:
chown:-> 更改“storage_cloud”的所有权:操作不允许
chmod 777(我知道这不是理想的,但值得一试):-> 更改“storage_cloud”的权限:操作不允许
setfacl:-> 操作不受支持
经过广泛的研究,我发现使用 Kerberos 而不是 sys_auth 可能是一个解决方案,但我发现关于这个主题的文档或教程很少。
鉴于我的设置似乎并不是特别复杂,感觉应该有一个更简单的解决方案来允许正确访问 www-data 的 NFS 共享。我可能把事情复杂化了。
我非常感谢任何见解或建议!
提前谢谢您,PP
只是简短的更新:我找到了解决方案!一开始看起来很复杂,但最终还是成功了。这可能不是完美的解决方案,所以请随意提出任何进一步的改进建议。
首先,访问问题源于 NFS 以 1:1 映射设备的方式,与 Synology 端完全相同。Synology 创建用户和组,您可以使用本地设备上的相同用户和组 ID 以 1:1 方式挂载它们。服务器端的根目录被压缩,这让它看起来像是在工作。但是,一旦您切换到任何其他用户,它就会停止运行。
解决方案:在本地创建相同的用户和组ID,并确保组访问权限正确。
就我而言,我将 NGINX 和 PHP 服务更改为在新用户和新组下运行。这听起来很复杂,但只需编辑两个配置文件并修改 PID 文件和日志的所有权即可。这基本上就是所有的“魔法”。一旦我接受了无法以通常的方式授予访问权限的事实,这个问题在 5 分钟内就解决了。
虽然更改默认的 www-data 用户似乎不常见,但这在多虚拟主机设置中很常见,例如 Plesk 或 cPanel 提供的设置。
这是我采取的方法。
替代解决方案 - 使用 LDAP 设置 Kerberos(并且预先使用 LDAP!)进行用户 ID 映射 - 更加复杂。
我希望这能帮助任何遇到与我相同问题的人!