ACL用户更改写入权限

我试图build立一个多用户可以在单个网站项目上工作的环境。 另外,每个人都应该能够为apache授予额外的写入权限。

这个想法是,每个人都使用一个单独的login(让我们假设它是joejanemarkusers )。 Apache以apache:www运行apache:www 。 每个人都必须拥有对所有文件的写入权限,apache拥有只读访问权限。 现在,用户select的文件必须可以由apache写入(重要的是,apache不能对所有文件拥有写入权限 – 安全性问题)。

我已经尝试了两个设置,一个使用ACL-s,一个使用umask,通用组等。两者都有相同的缺陷 – 用户不能更改apache的写入权限。

我尝试了两种方法:

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

    通过这种方式,我可以轻松pipe理所有用户的写入权限。 没有额外的设置,只是工作。 无论文件拥有者是什么,团队的每个用户都可以修改文件。 不幸的是,只有文件所有者才能为apache添加写入权限

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

    基于简单的权限,每个用户都可以读取和写入所有文件。 chgrp www ...是需要有Apache写入权限。 再次 – 只有文件所有者可以做到这一点。

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

  • bash脚本来更改权限,由sudo运行。 可以工作,但这是一个安全问题。 限制它只能访问项目目录对我来说是相当复杂的。 即使我这样做,recursion模式等也会出现问题。
  • 目录结构如下所示:
    • / project / www – apache htdocs( setfacl -md:group:users:rwx
    • / project / data – 由apache( setfacl -md:user:apache:rwx
    • ./www目录中的任何内容都必须由apache写入,必须以./data./data创build – 但这既不优雅也不方便

所以我正在寻找一个易于使用的解决scheme。 初始设置可能很复杂,但是每天使用不应该。 有什么build议么?

没有任何东西允许非拥有的非root用户更改文件权限。 我会用sudo'd脚本 – 但我不明白这有什么难的。 使用readlink -f来规范化文件名来改变,这样你就可以检查它的前缀是否正确,不要让用户真正指定权限,只要让它成为“grant write access to Apache”脚本即可。