como um arquivo bash pode ser executado sem a necessidade de inserir manualmente a frase-senha do sudo?

3

Eu escrevo um arquivo bash assim:

#!/bin/bash         
echo 1000 |sudo tee /sys/class/backlight/intel_backlight/brightness

(que altera o brilho da tela)

Eu preciso que ele seja executado na inicialização, mas como requer a frase-senha do sudo, devo inserir a frase-senha manualmente. Como posso reformar este código para não exigir a frase secreta do sudo em tempo de execução?

    
por Babak 08.03.2012 / 16:54

2 respostas

3

Para este problema em particular, você provavelmente pode colocar apenas echo 1000 > /sys/class/backlight/intel_backlight/brightness em /etc/rc.local (antes da exit -line). Isso seria executado na inicialização, como root antes da área de trabalho ser carregada.

Mas, em geral (como eu executo um script como root?), as coisas são um pequeno adesivo ...

Você pode executar sudo ./myscript (editando sudoers ), mas permitir que ./myscript seja executado sem uma senha significaria que você (ou um programa executando como você) poderia editar esse arquivo e de repente você pode executar < em> qualquer coisa como root sem passar pelos procedimentos corretos. Segurança insatisfatória.

Em vez disso, sugiro que:

sudo mv myscript /sbin/myscript
sudo chown root:root /sbin/myscript
sudo chmod 700 /sbin/myscript

Os comandos ch* agora significam que apenas o root pode ler / executar o script. Colá-lo em /sbin/ é apenas incidental - você não precisa fazer isso.

Agora você precisa editar /etc/sudoers . O Wiki tem um bom exemplo e você só precisará substituir os comandos shutdown pelo caminho do seu script (use um caminho completo e absoluto). NOPASSWD é a palavra chave aqui. Ele permite que você execute algo como sudo sem a senha. Então você pode simplesmente adicionar sudo /sbin/myscript ao seu jibberyboo de inicialização e você está voando.

    
por Oli 08.03.2012 / 17:41
-3

Estou apenas tirando uma foto no escuro, mas tento alterar as permissões no arquivo

  

chmod 777 [caminho do arquivo]

    
por Cygnus X 08.03.2012 / 17:32