我正在运行 Arch Linux。
我的网站的文件位于 /home/user/www/ 目录中。其他用户也将其网站的文件放在 /home/foo/www/ 目录中。
现在,如果我想更改他们网站上的某些内容,我必须具有 sudo 访问权限。
我想在没有 sudo 的情况下访问他们的目录。
如何将目录设置为用户和我,并为其他人(apache)将其 chown 为 755?
答案1
您可以使用访问控制列表(ACL)为此,向特定用户授予特定文件或目录的附加权限。
首先,确保相关文件系统启用了该选项:通常默认情况下会启用该选项,但您可以将其添加到(和/或重新安装)acl
中的选项中。fstab
启用 ACL 后,您可以使用以下命令控制特定文件或目录的 ACL命令setfacl
:
setfacl -m "user:vonflynee:rwx" /home/foo/www
除了文件所有者已经拥有的权限之外,这还为该特定目录vonflynee
的用户rwx
(格式为)设置了每用户权限。chmod
您可以为需要处理的不同用户和组的特定文件设置多个 ACL 规范,并且它们可以具有不同权限的任意组合。
与其他权限一样,您需要能够遍历整个树直到您想要访问的文件,因此您可能需要在树上进一步设置其他权限,并且您还需要访问这些文件。setfacl
支持--recursive
对整棵树设置权限的模式。
这Arch wiki 有一篇关于该主题的相当全面的文章,其中突出显示了该过程的特定于 Arch 的部分。
另一种选择,也是更传统的选择,就是简单地创建一个新组“ vonflyneeandfoo
”,将两个用户添加到其中,将chown -R
目录添加到该组,chmod g+s
该目录以便新文件继承其组,然后chmod -R g+rX dir
授予文件组写入权限。
如果只有这种情况,您需要处理这可能是更简单的选择。即使是这样,如果您有许多本地用户并且您已经依赖apache
成为组成员,那么读取权限的工作就会更加困难,而 ACL 对您来说会更方便。