Führen Sie das Skript mit Argumenten als sudo aus, ohne nach einem Passwort gefragt zu werden

Führen Sie das Skript mit Argumenten als sudo aus, ohne nach einem Passwort gefragt zu werden

Ich habe zwei Programme in Java, die ich von einem Bash-Skript aus aufrufe:

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

Ich möchte program2 als sudo ausführen, ohne nach einem Passwort gefragt zu werden. Ich kenne die sudoers-Datei, bin mir aber nicht sicher, wie ich sie konfigurieren soll, um Java-Programme als sudo auszuführen, ohne nach einem Passwort gefragt zu werden. Irgendwelche Ideen?

Antwort1

Verwenden von Platzhaltern in der Sudoers-Datei

In der sudoersDateidürfenVerwenden Sie Platzhalter (*), um die Möglichkeit zu schaffen, ein Skript mit Argumenten auszuführen.

Ein Beispiel

Ich habe es mit einem erschreckend einfachen Python-Skript getestet. In der sudoersDatei musste ich den absoluten Pfad zu python: /usr/bin/pythonin der Zeile der sudoers-Datei verwenden:

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

Dann war mein (Python-Skript-)Code:

#!/usr/bin/python

import sys

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

print(s1)
print(s2)

Dann habe ich in einem Terminal Folgendes ausgeführt:

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

ohne nach meinem Passwort zu fragen.

Ebenso sollten Sie Ihr gewünschtes Ergebnis erreichen, wenn Sie der sudoersDatei die folgende Zeile hinzufügen:

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

Und führen Sie das Skript aus, indem Sie:

sudo java <script> <args>

und Sie werden nicht nach Ihrem Passwort gefragt.

Mehr Informationen

Eine interessante Quelle zur Verwendung der sudoersDatei könnte sein:Dieses hier.

verwandte Informationen