Linux 如何让非 root 用户访问网卡?

发布于 2022-09-12 01:01:30 字数 131 浏览 15 评论 0

我想通过 PHP 运行 wakelan 命令唤醒局域网的设备,但是因为权限问题, http 用户运行 wakelan 命令时候没有权限向网络发送魔术封包。

除了赋予 http 用户 root 权限之外有什么办法可以发送魔术封包吗?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

无畏 2022-09-19 01:01:30

可以给 wakelan 命令加上 cap_net_raw:

sudo setcap 'cap_net_raw+ep' `which wakelan`

然后不用 root 就能运行。

我用的是 etherwake

# 一开始没权限:
$ getcap /usr/bin/etherwake
/usr/bin/etherwake =

# 运行错误 
$ /usr/bin/etherwake -i wlp2s0 98:5f:d3:37:bb:b4
ether-wake: This program must be run as root.

# 添加权限
$ sudo setcap 'cap_net_raw+ep' /usr/bin/etherwake
$ getcap  /usr/bin/etherwake
/usr/bin/etherwake = cap_net_raw+ep

# 正常运行
/usr/bin/etherwake -i wlp2s0 98:5f:d3:37:bb:b4
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文