0

我有一个 php 脚本,它在不使用 system() 的情况下执行跟踪路由。它使用 SOCK_RAW 和 ICMP。

我已经设法让这个脚本在没有 root 用户或使用 CAP_NET_RAW 更改 sudoers 中的任何内容的情况下运行。

问题是,脚本仅在通过 shell 调用时才有效,而不是通过浏览器。当我浏览浏览器时,出现错误:socket_create(): Unable to create socket [1]: Operation not allowed 。所以这里有一些事情会错过。

在谷歌和谷歌搜索之后,我无法弄清楚为什么通过 apache 调用相同的脚本不起作用。我是否还需要将 CAP_NET_RAW 添加到 apache 配置文件中?

对此的任何建议将不胜感激。

杰森

4

1 回答 1

0

典型的 Apache + PHP 安装在单独的系统用户(通常是 www-data)下运行。我的猜测是这个伪用户受到严格限制。尝试以 www-data 用户身份从 shell 执行 - 如果我是对的,它应该会失败。

于 2011-11-30T14:29:50.037 回答