Wie kann ich Sudo-Rechte nur für bestimmte Skriptdateien vergeben?

16

Ich möchte, dass ein Benutzer über Sudo-Rechte (ohne Kennwortprüfung) für einige Shell-Skripte in einem bestimmten Verzeichnis (in meinem Fall /usr/local/tomcat7/bin) und an keiner anderen Stelle verfügt. Was ist der einfachste Weg, um dies zu erreichen?

So etwas in /etc/sudoersschien nicht zu funktionieren:

jsmith ALL=(ALL) NOPASSWD: /usr/local/tomcat7/bin
Jonik
quelle

Antworten:

22

Ich denke du bist fast da. setzen Sie ein /am Ende Ihrer Verzeichnisangabe

jsmith ALL=(ALL) NOPASSWD: /usr/local/tomcat7/bin/

Von der sudoers-Manpage

Ein Verzeichnis ist ein vollständig qualifizierter Pfadname, der mit einem '/' endet. Wenn Sie ein Verzeichnis in einer Cmnd_List angeben, kann der Benutzer alle Dateien in diesem Verzeichnis ausführen (jedoch nicht in Unterverzeichnissen).

user9517 unterstützt GoFundMonica
quelle
Danke (an beide Antwortenden), es hat funktioniert! Hinweis zur Selbsthilfe : Notwendigkeit , die Skripte direkt (zB aufrufen sudo catalina.sh stop) - dies nicht funktioniert: sudo sh catalina.sh stop.
Jonik
7

Fügen Sie am Ende des Pfads einen Schrägstrich '/' ein.

jsmith ALL=(ALL) NOPASSWD: /usr/local/tomcat7/bin/
h0tw1r3
quelle