我需要授予用户访问其他目录(不属于他的目录)的权限。
例如,用户 sam 的 home /home/sam 需要访问 /var/www/html。
我看到有多种方法可以做到这一点。
- 匹配权利
- 匹配所有权
- 为两者创建一个组
- ACL
我个人会使用 ACL,因为我认为这是最安全、最干净的方式。但我将不胜感激任何其他建议。谢谢!
答案1
我认为最常见的方法是使用共享组,并确保文件是组可读/可写/可执行的,并且显然由共享组拥有。
您还可以创建一个没有登录权限的功能用户,您可以使用 sudo 来获得该用户,但这样您就会失去一些可追溯性。实际上,我怀疑您的计算机上有一个用户 www 可以拥有这些文件,并且您都可以被允许sudo -u www -s
以用户 www 的身份获得 shell 会话。这可能是拥有 Web 服务器进程的用户,如果您不信任自己或其他用户拥有 Web 服务器的访问权限,或者如果您想要 Web 服务器进程,则您可能想使用另一个帐户。服务器仅具有对网页内容的读取权限。
我已经使用 Unix 和 Linux 30 年了,而且我认为我从未在一个人们真正使用 ACL 的组织中工作过。这并不意味着这是一件坏事,但它让我怀疑这将是一个可能让用户和某些工具都感到困惑的解决方案。您可能认为是时候让更多人了解 ACL,这可能是对的......
经典的所有者-群体-其他系统存在缺陷。例如,如果您想与某些人共享文件的写访问权限,而您想与其他人共享读访问权限,那么具有文件系统访问权限的第三组人甚至不应该能够读取文件,您用完了正常用户组其他层次结构中的类别...但这不是您描述的用例。