像 root 用户一样运行带有 www-data 的 script.sh

像 root 用户一样运行带有 www-data 的 script.sh

我需要从我的网卡获取所有 mac 地址。因此我使用 Debian 的 nmap 并结合 PHP。

但是,如果没有 root 权限,这只能给我目标的 IP 地址和状态。有了 root 权限,我就可以获取 IP、状态和 MAC 地址。

我如何才能script.sh以 root 权限执行此命令(或使用 nmap 的命令),而无需执行“破解的服务器”(如ALL=NOPASSWD

答案1

如果你想获取远程 IP 的 MAC 地址,你可以简单地检查 ARP 缓存,如/proc/net/arp

#!/bin/sh
IP=$1
# make sure that the ARP-cache holds the entry for this IP
ping -c1 "${IP}" 2>&1 >/dev/null
# get the MAC-address
egrep -w "^${IP}" /proc/net/arp | awk '{print $4}'

答案2

设置您的脚本的uid或为其创建sudo规则。

相关内容