setfacl 对 Apache 创建的文件失败

setfacl 对 Apache 创建的文件失败

我有一个由我的用户拥有的目录vagrant。 Web 服务器(和 Web 应用程序)作为www-data.

两个用户都需要创建和修改该目录中的目录和文件,无论是谁创建的。因为vagrant我可以修改由创建的文件www-data,但无法在由创建的目录中创建新文件www-data

我相信我被困住了,因为我无法更改应用于创建的目录的掩码www-data

vagrant@iadev:/var/www/web$ sudo rm -r core/cache
vagrant@iadev:/var/www/web$ mkdir core/cache

vagrant@iadev:/var/www/web$ sudo setfacl -R -m u:www-data:rwX,u:vagrant:rwX core/cache
vagrant@iadev:/var/www/web$ sudo setfacl -dR -m u:www-data:rwX,u:vagrant:rwX core/cache

vagrant@iadev:/var/www/web$ getfacl core/cache
# file: core/cache
# owner: vagrant
# group: vagrant
user::rwx
user:www-data:rwx
user:vagrant:rwx
group::rwx
mask::rwx
other::r-x
default:user::rwx
default:user:www-data:rwx
default:user:vagrant:rwx
default:group::rwx
default:mask::rwx
default:other::r-x

我浏览网络应用程序并填充缓存

vagrant@iadev:/var/www/web$ getfacl core/cache/locks/
# file: core/cache/locks/
# owner: www-data
# group: www-data
user::rwx
user:www-data:rwx               #effective:r-x
user:vagrant:rwx                #effective:r-x
group::rwx                      #effective:r-x
mask::r-x
other::r-x
default:user::rwx
default:user:www-data:rwx
default:user:vagrant:rwx
default:group::rwx
default:mask::rwx
default:other::r-x

vagrant@iadev:/var/www/web$ vi core/cache/locks/test.txt

当用户vagrant尝试保存文件时core/cache/locks失败。我明白#effective:r-x这是问题所在,但我不知道如何改变它。

我已经尝试了 ~30 个setfacl命令变体(包括-nm:rwX):我不明白什么?

答案1

我有同样的问题。去查看ACLcore/cache/locks/test.txt有什么:

getfacl core/cache/locks/test.txt

目录默认 ACL 可能尚未应用于刚刚创建的文件(输出可能类似于):

# file: test.txt
# owner: www-data
# group: www-data
user::rw-
group::r--
other::r--

重新启动 Apache 对我有帮助。重新加载没有。

另一方面,我有另一个不需要重新启动的 Apache 实例。去搞清楚。

相关内容