尝试执行以下命令shell_exec(“ sudo / usr / bin / nmap -n -sn .. $ _ SERVER ['REMOTE_ADDR']),但它返回NULL

问题描述 投票:0回答:1

我正在跑步

  • nginx 1.17.4
  • php 7.4
  • arch linux 5.4.2

[尝试执行以下命令以从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中尝试它,但是它可以工作,但是当我在浏览器中运行它时却不能。

请帮助!

谢谢

php linux nginx shell-exec nmap
1个回答
0
投票

因为我的服务器是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
© www.soinside.com 2019 - 2024. All rights reserved.