ACL用户更改写权限

ACL用户更改写权限

我正在尝试设置一个环境,让多个用户可以在一个网站项目上工作。此外,每个人都应该能够为 apache 授予额外的写入权限。

这个想法是每个人都使用单独的登录名(假设它是joejane并且mark属于 组users)。Apache 以 的身份运行apache:www。每个人都必须拥有所有文件的写入权限,而 Apache 只具有读取权限。现在,用户选择的文件必须可由 Apache 写入(重要的是 Apache 不能拥有所有文件的写入权限 — 出于安全考虑)。

我尝试了两种设置,一种使用 ACL-s,一种使用 umask、普通组等。两者都有相同的缺陷——用户无法更改 apache 的写权限。

我尝试过的两种方法:

  • setfacl -m default:group:users:rwx project/

    这样,我可以轻松管理所有用户的写入权限。无需额外设置,直接使用即可。无论文件所有者是谁,团队中的每个用户都可以修改文件。不幸的是,只有文件所有者才能添加写入权限apache

  • umask 0002.bashrc,同一组内的所有用户

    基于简单权限,每个用户都拥有对所有文件的读写权限。Apachechgrp www ...需要具有写入权限。同样 — 只有文件所有者才能执行此操作。

因此,我基本上正在寻找一种方法来授予多个用户对文件执行操作的权限g+w。我想到了其他方法,例如:

  • bash 脚本用于更改权限,由 sudo 运行。可以工作,但这是一个安全问题。对我来说,限制它仅访问项目目录相当复杂。即使我这样做,递归模式等也会很复杂。
  • 目录结构如下:
    • /project/www - apache htdocs ( setfacl -m d:group:users:rwx)
    • /project/data-可由 apache 写入(setfacl -m d:user:apache:rwx
    • 目录中的所有内容都./www必须可由 写入apache,必须在 中创建./data并进行符号链接 — — 但这既不优雅也不方便

所以我正在寻找一种易于使用的解决方案。初始设置可能很复杂,但日常使用应该不会很复杂。有什么建议吗?

答案1

没有什么可以让非所有者、非 root 用户更改文件权限。我会使用 sudo 脚本——不过我不明白这有什么难的。使用readlink -f规范化要更改的文件名,以便您可以检查它的前缀是否正确,不要让用户实际指定权限,只需将其设为“授予 Apache 写访问权限”脚本。

相关内容