除非以 root 身份运行,否则 /proc/net/wireless 不会显示值

除非以 root 身份运行,否则 /proc/net/wireless 不会显示值

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 中使用它。我自己不确定这种情况下的风险是什么,希望得到评论。

相关内容