Запустите скрипт с аргументами как sudo, не попросившись пароля

У меня есть две программы в Java, который я называю из сценария удара:

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

Я хочу выполнить program2 как sudo, не попросившись пароля. Я знаю о sudoers файле, но я не уверен, как настроить его для запущения программ Java как sudo, не попросившись пароля. Какие-либо мысли?

2
задан 28 April 2016 в 00:01

1 ответ

Используя подстановочные знаки в sudoers файле

В sudoers файл, можно использовать подстановочные знаки (*), таким образом создавая возможность запустить скрипт с аргументами.

Пример

Я протестировал его с очень простым сценарием Python. В sudoers файл я должен был использовать полный путь для python: /usr/bin/python в строке sudoers файла:

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

Затем мой (сценарий Python) код был:

#!/usr/bin/python

import sys

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

print(s1)
print(s2)

Затем я работал в терминале:

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

не прося мой пароль.

Точно так же необходимо смочь достигнуть того, что Вы хотите путем добавления следующей строки к sudoers файл:

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

И запущенный скрипт:

sudo java <script> <args>

и Вас не попросят Вашего пароля.

Больше информации

Интересный источник о том, как использовать sudoers файл мог бы быть этим.

2
ответ дан 2 December 2019 в 03:58

Другие вопросы по тегам:

Похожие вопросы: