我正在跑步
[尝试执行以下命令以从IP获取我的用户MAC地址(此脚本将在我的lan服务器上运行),并且$ _SERVER ['REMOTE_ADDR']确实返回了有效的ip
shell_exec("sudo /usr/bin/nmap -n -sn ".$_SERVER['REMOTE_ADDR'])
但是它返回null,所以我尝试了以下操作以获取更多信息
shell_exec("sudo /usr/bin/nmap -n -sn ".$_SERVER['REMOTE_ADDR'] ." 2>&1")
并得到以下信息:sudo:有效uid不为0,sudo是否已安装setuid root?
我不明白为什么会收到此错误,因为我在sudder文件中添加了以下内容
http ALL=NOPASSWD: /usr/bin/nmap
我已经修改了passwd,以允许通过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