【问题标题】:Trying to execute the following command shell_exec("sudo /usr/bin/nmap -n -sn ".$_SERVER['REMOTE_ADDR']) but it returns NULL尝试执行以下命令 shell_exec("sudo /usr/bin/nmap -n -sn ".$_SERVER['REMOTE_ADDR']) 但它返回 NULL
【发布时间】:2019-12-15 00:01:46
【问题描述】:

我在跑步

  • nginx 1.17.4
  • php 7.4
  • arch linux 5.4.2

尝试执行以下命令从 IP 获取我的用户 MAC 地址(此脚本将在我的局域网服务器上运行)并且 $_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

我已修改我的密码以允许从 HTTP 登录以在 shell 中尝试它,它可以工作,但当我在浏览器中运行它时却不行。

请帮忙!

谢谢

【问题讨论】:

    标签: php linux nginx shell-exec nmap


    【解决方案1】:

    因为我的服务器是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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-19
      • 1970-01-01
      • 1970-01-01
      • 2019-09-10
      • 1970-01-01
      • 1970-01-01
      • 2017-11-26
      • 1970-01-01
      相关资源
      最近更新 更多