Execute o script com argumentos como sudo sem ser solicitado a senha

2

Eu tenho dois programas em Java que estou chamando do script bash:

java program1 arg ... arg
sudo java program2 arg ... arg

Eu quero rodar o programa2 como sudo sem precisar de senha. Estou ciente do arquivo sudoers, mas não tenho certeza de como configurá-lo para executar programas java como sudo sem ser solicitado a senha. Alguma idéia?

    
por Marko Gulin 04.12.2014 / 11:57

1 resposta

2

Usando curingas no arquivo sudoers

No arquivo sudoers , você pode usar curingas (*), criando assim a possibilidade de executar um script com argumentos.

Um exemplo

Eu testei com um script python incrivelmente simples. No arquivo sudoers eu tive que usar o caminho absoluto para python : /usr/bin/python na linha do arquivo sudoers:

jacob ALL=NOPASSWD: /usr/bin/python /home/jacob/Bureaublad/pscript_1.py*

Então meu código (script python) era:

#!/usr/bin/python

import sys

s1 = sys.argv[1]
s2 = sys.argv[2]

print(s1)
print(s2)

Então eu corri em um terminal:

~$ sudo python '/home/jacob/Bureaublad/pscript_1.py' monkey banana
 monkey
 banana

sem pedir minha senha.

Da mesma forma, você deve conseguir o que deseja adicionando a seguinte linha ao arquivo sudoers :

<your_username> ALL=NOPASSWD: /path/to/java <your_script>*

E execute o script por:

sudo java <script> <args>

e não lhe será pedida a sua senha.

Mais informações

Uma fonte interessante sobre como usar o arquivo sudoers pode ser este .

    
por Jacob Vlijm 04.12.2014 / 19:55