Ich schreibe eine Java-Anwendung, in der ich eine Befehlszeilenausführung ausführen und ein Ergebnis zurückerhalten muss, aber wenn ich den Befehl ausführe, frage ich nach dem Sudo-Passwort. Bisher habe ich versucht:
$ sudo -s
$ vim /etc/sudoers
# User privilege specification
root ALL=(ALL:ALL) NOPASSWD: ALL
javauser ALL=(ALL:ALL) NOPASSWD: ALL
:wq
$ 4 -r--r----- 1 root root 615 2011-10-26 09:23 sudoers
Sobald ich den Befehl ausführe, fragt es wieder "[Javauser] Passwort für Javauser:". Aber noPASSWD habe ich schon erwähnt.
whoami
kehrt zurück alex
und ich füge es als dies in der sudoers
Datei
# User privilege specification
root ALL=(ALL:ALL) ALL
alex ALL=NOPASSWD: ALL
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
Running fragt mich immer wieder nach meinem Passwort.
command-line
sudo
muru
quelle
quelle
sudo visudo
anstattvim
die sudoers - Datei zu bearbeiten. Auf diese Weise warnt Sie das Programm, wenn Sie einen Fehler machen.Antworten:
Sie müssen Folgendes auf dem Terminaltyp
sudo visudo
ausführen und am Ende der Datei eine Zeile wie diese einfügen, in der die Befehle angegeben sind, die Sie ausführen möchten, ohne das sudo-Kennwort einzugeben (ich schlage vor, Sie verwenden jeden Befehl, den Sie im Programm und verwenden möchten) nicht nur alle Programme damit ausführen lassen)Jetzt können Sie die angegebenen Befehle ohne Kennwort ausführen, solange Sie diesen Befehl mit eingeben
sudo
.shutdown -r now
ZB: Nehmen wir an, Sie möchten ausgeführt werden, ohne jedes Mal sudo password eingeben zu müssen und Ihr Benutzername lautet "joedoe".Tippen Sie
sudo visudo
auf einem TerminalFügen Sie
joedoe ALL=NOPASSWD: /usr/sbin/shutdown -r now
als neue Zeile am Ende der Datei absolute Pfade zu dem Programm hinzu, das Sie verwenden möchten.Auf Ihr Programm können Sie dann zugreifen,
sudo shutdown -r now
ohne das sudo-Passwort eingeben zu müssen.Sie können den absoluten Pfad zu einem Programm
which <program name>
über ein Terminal ermitteln.Es ist ein sehr schmutziger Trickwunsch, der Ihr System für andere Gefahren offen lässt, aber ich vermute, Sie wissen, was Sie tun und wollen dies.
Sie müssen wirklich sicherstellen, dass sich die von Ihnen festgelegten Berechtigungen am Ende der Datei befinden, damit von den Gruppenberechtigungen nichts überschrieben wird.
quelle
sudo visudo
und nichtvim
bearbeiten soll? Wenn er das tat, würde es funktionieren.sudo
vor dem Befehl in Ihrem Code ein? Sie müssen dies auch dann tun, wenn Sie "nopasswd" in der sudoers-Datei erzwungen haben. dh:sudo <command>
nicht nur verwenden<command>
.bruno
und cmd ="sudo whoami
"kehrt zurückroot
sudoers
der Datei befindet. Nach der Gruppenzuordnung usw. Wirklich die letzte Zeile! Verschieben Sie die Zeile, um die letzte in der Datei zu sein! (hoffe das war es).