Php 正在尝试执行以下命令shell_exec(";sudo/usr/bin/nmap-n-sn";$_SERVER[';REMOTE#ADDR';]),但返回NULL
我在跑步Php 正在尝试执行以下命令shell_exec(";sudo/usr/bin/nmap-n-sn";$_SERVER[';REMOTE#ADDR';]),但返回NULL,php,linux,nginx,shell-exec,nmap,Php,Linux,Nginx,Shell Exec,Nmap,我在跑步 nginx 1.17.4 PHP7.4 ArchLinux5.4.2 尝试执行以下命令以从IP获取我的用户MAC地址(此脚本将在我的lan服务器上运行),并且$\u服务器['REMOTE\u ADDR']会返回有效的IP shell_exec("sudo /usr/bin/nmap -n -sn ".$_SERVER['REMOTE_ADDR']) 但是它返回null,所以我尝试了以下方法来获取更多信息 shell_exec("sudo /usr/bin/nmap -n -sn
- nginx 1.17.4
- PHP7.4
- ArchLinux5.4.2
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:effective uid不是0,sudo是否安装了setuid root?
我不明白为什么会出现这个错误,因为我在我的sudder文件中添加了以下内容
http ALL=NOPASSWD: /usr/bin/nmap
我已经修改了passwd,允许从HTTP登录到shell中进行尝试,它可以工作,但在浏览器中运行时无法工作
救命啊
谢谢因为我的服务器是arch linux,所以我决定在arch论坛上提问,并发现它能够解决我的问题。因此,对于任何感兴趣的人,请查看 对我来说,基本上是将php fpm服务文件更改为以下内容
/etc/systemd/system/multi-user.target.wants/php-fpm.service
Set NoNewPrivileges=false
comment CapabilityBoundingSet