我有 3 台不同的服务器运行 Ubuntu 20。其中一台配置为 NFS 主机,另外两台配置为客户端。客户端可以挂载 NFS 共享文件夹并可以在其中写入内容sudo touch foo.txt
。
在客户端服务器上,我有一个镜像网站的 wget 进程。我希望我的两个客户端服务器将文件从 wget 输出到/nfs/shared
文件夹。在两台服务器上,该进程的执行方式如下www-data user wget (...) -o /nfs/shared
。
由于 . 原因,所有服务器都无法写入该文件夹permission denied
。阅读此处的其他问题似乎我的用户必须具有相同的权限UUID
才能确保权限掩码正常工作。
我的问题:
- 如何维护
n
服务器上常见的用户列表,以确保所有用户都可以写入/nfs/shared
?
答案1
有多种方法可以做到这一点,但最常见的方法是:
- 手动更改 uid 和/或复制 /etc/{passwd|shadow|group} - 不推荐 - 即使您知道自己在做什么,这也会让您感到痛苦
- 在所有主机上创建一个具有通用 GID 的组,并围绕该组设置权限(仍然是一种解决方法,但比尝试同步 uid 麻烦少得多)
- NIS / NIS+ / 黄页 - 实现第一种方法的集成/自动化方法。现在,这已逐渐成为历史——工具仍然可用,但预计文档会出现一些问题
- LDAP - 需要设置的 PITA,但一旦正确配置,就可以轻松地继续运行
根据上下文以及存储用于其他用途的方式,您也许可以通过使用 SMB 来避免该问题。