首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Apache suexec不会使用strace

Apache suexec不会使用strace
EN

Unix & Linux用户
提问于 2014-07-10 13:36:22
回答 1查看 569关注 0票数 2

我有一个启用mod_suexec的Apache实例。我正在尝试调试一个问题,并使用strace启动Apache,以尝试查看发生了什么。

但是,当我像这样启动Apache时:

代码语言:javascript
复制
# strace -f -o /tmp/apache.strace /etc/init.d/apache2 start

我在错误日志中看到了这一点:

代码语言:javascript
复制
suexec failure: could not open log file
fopen: Permission denied

但是,当我正常启动Apache时,一切都正常工作。

我猜想mod_suexec正在使用的某些机制被strace的使用破坏了,但我不清楚到底发生了什么。是否有任何方法可以使用strace并使mod_suexec正确工作?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2014-07-10 20:46:22

strace使用ptrace()跟踪系统调用。

如果正在跟踪的进程试图执行带有setuid或setgid位的文件,则这些位将被忽略(进程将继续以进程的现有uid和gid运行),除非进程以根用户身份运行(或具有CAP_SETUID功能)。

您的web服务器是(希望!)不作为root运行,所以如果您跟踪它,suexec的setuid位将被忽略,它将作为web服务器的uid运行。

为了解决这个问题,您可以避免在suexec启动之前进行任何操作,然后执行strace -f -o ... -p pid-of-suexec。为了让您有时间查找suexec的进程id,您可以添加代码,这样它就可以休眠一会儿,或者等待文件出现等等。

票数 4
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/143777

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档