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 sudoers
arquivo vocêpodeuse curingas (*), criando assim a possibilidade de executar um script com argumentos.
Um exemplo
Eu testei com um script python surpreendentemente simples. No sudoers
arquivo 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) 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 sudoers
arquivo:
<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 sudoers
arquivo pode serEste.