Apache 和 CAP_NET_RAW

发布于 2024-12-18 21:08:15 字数 399 浏览 2 评论 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 配置文件中?

对此的任何建议将非常感激。

贾森

I have a php script that carries out a trace route without using system(). It uses SOCK_RAW and ICMP.

I have managed to get this script to run with out been a root user or changing anything in sudoers by using CAP_NET_RAW.

The thing is, the scrip only works when called through the shell, not through the browser. When I go through my browser I get the error: socket_create(): Unable to create socket [1]: Operation not permitted . So something is going a miss here.

After googleing and googleing I am unable to work out why the same script is not working when called through apache. Do I need to add CAP_NET_RAW to an apache config file as well?

Any advice on this would be very much appreciated.

Jason

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

欲拥i 2024-12-25 21:08:15

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

Typical Apache + PHP installations run under a separate system user (usually www-data). My guess is that this pseudo-user is heavily restricted. Try executing from the shell as the www-data user - it should fail, if I'm right.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文