尝试执行以下命令 shell_exec("sudo /usr/bin/nmap -n -sn ".$_SERVER['REMOTE_ADDR']) 但它 returns NULL

Trying to execute the following command shell_exec("sudo /usr/bin/nmap -n -sn ".$_SERVER['REMOTE_ADDR']) but it returns NULL

我运行宁

尝试执行以下命令从 IP 获取我的用户 MAC 地址(此脚本将 运行 在我的局域网服务器上)并且 $_SERVER['REMOTE_ADDR'] return 一个有效的 ip

shell_exec("sudo /usr/bin/nmap -n -sn ".$_SERVER['REMOTE_ADDR'])

但是它 return 是空的,所以我尝试了以下方法来获取更多信息

shell_exec("sudo /usr/bin/nmap -n -sn ".$_SERVER['REMOTE_ADDR'] ." 2>&1")

得到如下信息:sudo: effective uid is not 0, is sudo installed setuid root?

我不明白为什么会出现此错误,因为我在 sudder 文件中添加了以下内容

http ALL=NOPASSWD: /usr/bin/nmap

我修改了我的密码以允许从 HTTP 登录以在 shell 中尝试它并且它有效但当我在浏览器中 运行 它时无效。

请帮忙!

谢谢

因为我的服务器是 arch linux 我决定去那个 arch 论坛问问,发现能够解决我的问题。所以有兴趣的人请查看

https://bbs.archlinux.org/viewtopic.php?pid=1877560#p1877560

对我来说基本上是将 php-fpm 服务文件更改为以下内容

/etc/systemd/system/multi-user.target.wants/php-fpm.service

Set NoNewPrivileges=false

comment CapabilityBoundingSet