Eu me deparei com esse problema ontem e encontrei dois métodos:
1. Sudoers
Adicione uma regra que permita o acesso ao comando sem uma senha.
# visudo
Substituindo o nome de usuário:
...
username ALL=(ALL) NOPASSWD: /bin/cat /proc/net/wireless
...
Algumas desvantagens incluem a poluição do log de autenticação, especialmente se a verificação do sinal ocorrer a cada poucos segundos, bem como a necessidade de adicionar sudo
a esses scripts.
2. Capacidades
Dê o binário CAP_NET_ADMIN
# setcap cap_net_admin+ep /bin/cat
+
para adicionar e -
para remover
- e: Eficaz - Isso significa que a capacidade é "ativada".
- p: permitido - isso significa que o recurso pode ser usado / é permitido.
- i: Herdado - O recurso é mantido por filho / subprocessos sob execve (), por exemplo.
Mais informações em man cap_from_text
Aviso de isenção: CAP_NET_ADMIN
é uma forma de privilégio elevado. Permitindo danos a coisas como configuração de rede e firewalls. No meu caso eu só preciso disso para grep
usado em um bloco i3. Eu não tenho certeza qual é o risco neste caso e gostaria de receber comentários.