私は、bash スクリプトから呼び出す Java プログラムを 2 つ持っています。
java program1 arg ... arg
sudo java program2 arg ... arg
パスワードを尋ねられることなく、program2 を sudo として実行したいです。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*
私の(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
は、これです。