我正试着用威克昂兰发送一个魔法包。但是,只有当我使用sudo时,它才能工作:
sudo wakeonlan xx:xx:xx:xx:xx:xx当我不使用sudo时,输出显示神奇的数据包已经发送,但是服务器永远不会醒来。有没有一种不用sudo运行此命令的方法?为了在php脚本中运行命令,我需要这样做。谢谢!
发布于 2019-07-20 04:29:15
有几种方法可以从php中使用sudo,因为本文涉及到:
在这样做之前,请记住这篇文章的警告:
向PHP提供sudo是从web接口执行shell命令的几种方法之一。它可能不是最安全的方法之一,因此我建议不要在具有外部(WAN) internet访问权限的服务器上执行此操作,因为可能会执行恶意代码。一个恶意的人可以访问你的整个网络,包括任何共享文件,网络附加存储等。你需要小心这一点。
/etc/sudoers文件上面的文章描述了如何设置不需要密码的具有sudo访问权限的用户。这个问答会给出其他的例子:
发布于 2022-03-22 12:35:34
您可以将cap_net_raw+ep添加到程序中,这样就不需要sudo了。这也不会将该命令作为root运行。它允许生成任意网络包。
sudo ln -s /usr/sbin/etherwake /usr/bin/etherwake
sudo setcap cap_net_raw+ep /usr/sbin/etherwake此选项可能并不适用于所有系统。允许在某些程序上使用没有密码的sudo可能会打开权限提升向量。滥用原始包生成是有点困难。
https://askubuntu.com/questions/1159577
复制相似问题