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

Sas*_*sha 7 wifi sudo proc

cat /proc/net/wireless除非以 root 身份运行,否则不会显示无线设备的统计信息,即使文件的权限是 444。通过iwlib. 有没有办法访问cat这个文件并查看值而不需要以 root 身份运行命令?

bea*_*roo 0

昨天遇到这个问题,找到了两种方法:

\n

1. 苏多尔

\n

添加允许命令无需密码访问的规则。

\n
# visudo\n
Run Code Online (Sandbox Code Playgroud)\n

替换用户名:

\n
...\nusername ALL=(ALL) NOPASSWD: /bin/cat /proc/net/wireless\n...\n
Run Code Online (Sandbox Code Playgroud)\n

一些缺点包括身份验证日志污染,特别是每隔几秒检查一次信号,以及需要添加sudo到这些脚本。

\n

2. 能力

\n

给出二进制CAP_NET_ADMIN

\n
# setcap cap_net_admin+ep /bin/cat\n
Run Code Online (Sandbox Code Playgroud)\n

+添加和-删​​除

\n
    \n
  • e:有效 - 这意味着该功能为 \xe2\x80\x9cactivated\xe2\x80\x9d。
  • \n
  • p:允许 - 这意味着可以使用/允许该功能。
  • \n
  • i:继承 - 例如,该功能由子进程/子进程在 execve() 上保留。
  • \n
\n

更多信息请访问man cap_from_text

\n

免责声明: CAP_NET_ADMIN是一种提升特权的形式。允许对网络配置和防火墙等内容造成损害。就我而言,我只需要它grep在 i3 blocklet 中使用它。我自己不确定这种情况下的风险是什么,希望得到评论。

\n