Sudo acesso sem senha a / sys / power / state

3

No meu computador, o pm-hibernate parece estar quebrado, mas usar o comando echo disk > /sys/power/state parece funcionar perfeitamente. Agora eu só preciso de acesso de usuário regular a ele, usando o sudo. Como faço isso?

O comando sudo echo disk > /sys/power/state simplesmente retorna bash: /sys/power/state: Permission denied .

Além disso, eu preciso disso em um script usado regularmente, como posso fazer isso para que eu não precise digitar minha senha para que ela funcione?

    
por codesmith 15.10.2012 / 23:03

1 resposta

4

Observe que os caracteres de redirecionamento "separam" a execução e os privilégios. Neste comando:

sudo echo disk > /sys/power/state

O que você está fazendo é executar echo disk como raiz (sem sentido) e, em seguida, canalizar isso, como usuário normal, para um arquivo que pertence a root. Por isso, você obtém permissão negada.

Este é um caso de uso muito comum, o que você precisa fazer é sudo a parte que realmente grava no arquivo, algo como isto funciona:

echo disk | sudo tee /sys/power/state

Você também pode criar um script de shell (um arquivo) com:

  echo disk > /sys/power/state

Nomeie-o, por exemplo, script.sh, execute chmod 755 script.sh e execute isso com sudo:

sudo /wherever/you/put/this/script.sh

Quanto a executar um comando sem precisar de uma senha, isso já foi discutido antes: Como faço para sudo sem ter que digitar minha senha? . Pode ser um pouco inseguro; você pode controlar qual usuário executará o comando como root sem senha, mas nesse caso você precisaria permitir a execução do comando tee , o que poderia permitir que usuários mal-intencionados substituíssem qualquer arquivo como root . Portanto, use com cuidado e leia toda a documentação e entenda as implicações de segurança ao fazer isso.

    
por roadmr 15.10.2012 / 23:14