nginx 真的需要在其 AppArmor 策略中使用 dac_override 吗?

Fed*_* B. 5 nginx apparmor

我正在为nginxUbuntu 14.04构建 AppArmor 策略,如果不启用该dac_override功能,我将无法使其工作。

是否nginx真的需要启用此功能或有什么方法可以解决它?覆盖所有自由访问控制看起来有风险,但在 AppArmor 约束中这可能很常见。

nginx 不受限制地运行良好,所以我认为没有权限问题,但我是 AppArmor 的新手,所以我可能是错的。

Fed*_* B. 6

Ubuntu 中 nginx 日志的默认文件权限是rw-r-----. 这些文件归www-admin:adm.

nginx在 user 下启动rootCAP_DAC_OVERRIDE默认情况下它具有能力(记住root可以读写系统中的任何文件)但是一旦 AppArmor 限制启动,该进程即使以 身份运行也会失去该能力root,因此主 nginx 进程无法打开日志文件。

解决方案是更改权限以便也root可以写入这些文件,或者将dac_override功能添加到 AppArmor nginx 配置文件。