cat /proc/net/wireless
除非以 root 身份运行,否则不会显示无线设备的统计信息,即使文件的权限为 444。通过 访问统计信息时似乎同样适用iwlib
。有没有办法访问cat
此文件并查看值,而不需要以 root 身份运行该命令?
答案1
昨天遇到这个问题,找到了两种方法:
1. 苏多尔
添加允许命令无需密码访问的规则。
# visudo
替换用户名:
...
username ALL=(ALL) NOPASSWD: /bin/cat /proc/net/wireless
...
一些缺点包括身份验证日志污染,特别是每隔几秒检查一次信号,以及需要添加sudo
到这些脚本。
2. 能力
给出二进制CAP_NET_ADMIN
# setcap cap_net_admin+ep /bin/cat
+
添加和-
删除
- e:有效 - 这意味着该功能已“激活”。
- p:允许 - 这意味着可以使用/允许该功能。
- i:继承 - 例如,该功能由子进程/子进程在 execve() 上保留。
更多信息请访问man cap_from_text
免责声明: CAP_NET_ADMIN
是一种提升特权的形式。允许对网络配置和防火墙等内容造成损害。就我而言,我只需要grep
在 i3 blocklet 中使用它。我自己不确定这种情况下的风险是什么,希望得到评论。