비밀번호를 묻지 않고 sudo 인수를 사용하여 스크립트를 실행합니다.

비밀번호를 묻지 않고 sudo 인수를 사용하여 스크립트를 실행합니다.

bash 스크립트에서 호출하는 Java 프로그램이 두 개 있습니다.

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

비밀번호를 묻지 않고 sudo로 program2를 실행하고 싶습니다. sudoers 파일에 대해 알고 있지만 비밀번호를 묻지 않고 Java 프로그램을 sudo로 실행하도록 구성하는 방법을 잘 모르겠습니다. 이견있는 사람?

답변1

sudoers 파일에서 와일드카드 사용

파일 에서 sudoers당신은~할 수 있다와일드카드(*)를 사용하면 인수가 포함된 스크립트를 실행할 수 있습니다.

놀랍도록 간단한 Python 스크립트로 테스트했습니다. 파일 에서 sudoers 파일 줄에 있는 : sudoers에 대한 절대 경로를 사용해야 했습니다 .python/usr/bin/python

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

그런 다음 내 (파이썬 스크립트) 코드는 다음과 같습니다.

#!/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다음과 같습니다.이 하나.

관련 정보