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

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

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

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

Quero executar o program2 como sudo sem que seja solicitada a senha. Estou ciente do arquivo sudoers, mas não sei como configurá-lo para executar programas Java como sudo sem que seja solicitada uma senha. Alguma ideia?

Responder1

Usando curingas no arquivo sudoers

No sudoersarquivo vocêpodeuse curingas (*), criando assim a possibilidade de executar um script com argumentos.

Um exemplo

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

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

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

#!/usr/bin/python

import sys

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

print(s1)
print(s2)

Então 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 sudoersarquivo:

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

E execute o script por:

sudo java <script> <args>

e não será solicitada sua senha.

Mais Informações

Uma fonte interessante sobre como usar o sudoersarquivo pode serEste.

informação relacionada