【问题标题】:How to determine files that apache "cannot open for reading" in error log如何在错误日志中确定 apache“无法打开以供阅读”的文件
【发布时间】:2012-09-06 15:19:39
【问题描述】:

我的 apache 错误日志已满

Error opening file for reading: Permission denied
Error opening file for reading: Permission denied
Error opening file for reading: Permission denied

等等

如何确定导致此权限错误的文件或文件夹?出现的错误与 access_log 请求之间没有直接关系。

Googling suggests 我应该使用 strace 但是当我这样做时

strace apache2 

或

strace -etrace:open apache2

回复很冗长,因为我之前没有真正成功使用过这个工具,所以我不确定要寻找什么。这是出现的痕迹。

.....
open("/lib/x86_64-linux-gnu/libnss_nis.so.2", O_RDONLY|O_CLOEXEC) = 3
open("/lib/x86_64-linux-gnu/libnss_files.so.2", O_RDONLY|O_CLOEXEC) = 3
open("/etc/passwd", O_RDONLY|O_CLOEXEC) = 3
apache2: bad user name ${APACHE_RUN_USER}

最后一行似乎是唯一可能的原因,但我的网络服务器正在处理图像,以及如果 apache 用户不够用的话会出现问题的各种磁盘内容。

谢谢。

【问题讨论】:

    标签: apache logging permissions


    【解决方案1】:

    我对 strace 不是很了解,但我认为您需要做一些其他事情才能让 Apache 按您的意愿运行。

    如果您只运行 apache2 二进制文件,您的程序将停止(如您所述)并使用错误的用户名,因为通常 apache 用户名/组被设置为配置的一部分(在我的 Ubuntu 上的 /etc/apache2/envvars 12.04 安装)。

    我发现最简单的方法是在我的机器上找到 apachectl 脚本,然后搜索“start)”。你会发现这样一行:

    $HTTPD ${APACHE_ARGUMENTS} -k $ARGV

    您可以在此处添加您的 strace,使其看起来像:

    strace -etrace:open -f $HTTPD ${APACHE_ARGUMENETS} -k $ARGV

    您需要包含 -f 选项,因为 apache 会产生许多进程,并且您最有可能希望跟踪它们,至少这对我有用 :)

    【讨论】:

    • 嗨,克里斯,感谢您的回答。我当时忽略了投票,老实说不记得问题是什么,也不记得现在的解决方案!
    【解决方案2】:

    您需要查找对open() 的调用,该调用导致返回值 -1,errno == EACCES。

    我不得不在 ubuntu 上调整以下 strace 命令行(在 /usr/sbin/apachectl 中):

    strace -o /tmp/strace.log -e trace=open -f $HTTPD ${APACHE_ARGUMENTS} -k $ARGV
    

    -o 将输出存储在一个文件中。如果您担心在所有人都可读的区域中泄露文件名,请使用适当的目标目录。

    我自己正在使用在 apache mod wsgi 中运行的 python 程序来寻找类似的错误。我正在寻找这些......

    3556  open("/proc/self/auxv", O_RDONLY) = -1 EACCES (Permission denied)
    

    我认为我的错误与 wsgi 工作进程将权限从 root 降低到运行应用程序的普通用户的事实有关,但在权限降低后,/proc/self/auxv 仍然无法正常进程读取。 - 可能是。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-22
      • 2014-05-04
      • 2016-09-09
      • 2017-09-11
      • 1970-01-01
      • 2013-09-11
      • 2013-08-28
      • 2020-06-17
      相关资源
      最近更新 更多