Como executar o script Bash como root sem senha? [duplicado]

16

Eu quero executar um script bash como root sem prompt de senha.

Eu tentei visudo sem sorte (your_username ALL = (ALL) NOPASSWD: / caminho / para / seu / script).

Parece-me o único caminho para sair, existe algum outro?

    
por Vromoth 25.07.2012 / 10:31

1 resposta

26

Existe um truque muito bom em todos os Linux que permitirão que você faça isso. É chamado o bit SetUI.

Lembre-se de que você precisará ter as permissões bloqueadas nesse arquivo para que isso seja seguro.

Crie o arquivo que pertence à raiz e à raiz do grupo:

sudo chown root.root <my script>

Agora defina o bit SetUID, torne-o executável para todos e apenas gravável pelo root:

sudo chmod 4755 <my script>

Tenha em mente que se este script permitir qualquer entrada ou edição de arquivos, isso também será feito como root.

O bit SetUID faz com que um script ou binário seja sempre executado como o proprietário do arquivo / binário, um exemplo de tal binário é 'passwd'.

Existe uma solução usando sudoers aqui é um exemplo que você poderia usar. Adicione estas duas linhas no final do seu arquivo sudoers. Você pode usar visudo para editar o arquivo sudoers.

Cmnd_Alias        CMDS = /path/to/your/script

<username>  ALL=NOPASSWD: CMDS

Agora basta colocar o sudo na frente do seu script e ele deve ser executado sem pedir uma senha.

    
por Jochen Oonincx 25.07.2012 / 12:23

Tags