我已设置默认 ACL,允许我对新写入的文件执行任何操作。但 Apache 似乎忽略了这一点,我无法访问新创建的文件。如何解决此问题?
答案1
如果你指的是 chmod/grp/own 控制的权限,那么尝试使用 sudo 和 su ang sg 成为该用户
sudo -s
[密码]
阿帕奇
苏阿帕奇
完成后,尝试使用 cat 读取这些文件,如果有效,就完成了!
解决这个问题
chgrp apache-R
<FOLDER>
chmod g + rX-R
<FOLDER>
否则,如果你谈论的是 extfs acls,可以通过 ls 记录中带有 + 的文件来查看
[mock@vbox~/footest]$ ls -all
-rw-rwxr--+1 hauna hauna 0 7月29日 15:14 fileacl
-rw-rw-r--. 1 hauna hauna 0 7月 29 15:13 filenoacl
这个问题可以按以下方式处理
设置facl-mg:apache:rx
<FOLDER>
如果您正在谈论 selinux,您将需要更改创建文件位置的默认上下文,这必须以 root 身份完成!
管理上下文-a-t httpd_sys_content_t'/srv/httproot(/.*)'
这将影响未来的文件,要影响当前的文件,请使用此
restorecon -R /srv/httproot
我希望这能解决一切问题,
我将非常感激发布 apache 的错误日志、相关目录的 ls -all,以及大约在同一时间出现并被拒绝的任何审计日志(在 /var/log/audit/audit.log 中)
答案2
我保留另一个答案,因为它对另一个问题有效!
首先,你需要更改 Apache 运行时的 umask
sudo echo“umask 117”> /etc/sysconfig/httpd
这将导致 apache 创建的文件被 chmod 为 660(noexec 是个好主意)
然后将自己添加到 apache 组
sudo usermod -aG apache 我自己