Auf einem unserer Server befindet sich ein automatisches Skript, das vom beobachtenden Benutzer ausgeführt wird. Es muss einem anderen Skript, das vom primären Benutzer ausgeführt wird, mitteilen, dass es eine Protokolldatei aktualisieren soll.
Der Code hierfür lautetsudo kill -UPDATE_LOG pid
Offensichtlich muss der Beobachtungsbenutzer über die Berechtigung verfügen, diesen Befehl auszuführen. Aus offensichtlichen Gründen möchte ich diesem automatischen Skript jedoch nicht die Berechtigung erteilen, Prozesse zu beenden.
Ich würde gerne so etwas machen wiealias update_log='kill -UPDATE_LOG; grant update_log on observing_user
Antwort1
wahrscheinlich mit
sudo pkill -UPDATE_LOG <process-name>
anstelle von „kill“ wäre die restriktive Option ausreichend, um Ihren Bedarf zu decken?
Eine andere Möglichkeit, dies zu beheben, besteht darin, den Befehl, den Sie mit sudo anbieten möchten, in ein benutzerdefiniertes Skript oder eine Exec-Anweisung einzubetten, um diese Aktion auszuführen.
Antwort2
Okay, ich habe also eine Antwort gefunden, nachdem ich meine Schlüsselwörter geändert habe.
Siehe auch: Wie kann verhindert werden, dass Sudo-Benutzer bestimmte Befehle ausführen?
Schritt 1:
sudo visudo
Die Syntax lautet wie folgt:
user host=command
Dies gewährt Sudo-Zugriff auf einen bestimmten Befehl. Sie können auch Gruppen wie
%group host=command
Sie können ALL in jeder der drei „Spalten“ verwenden, um dies auf jeden Host, jeden Befehl oder jeden Benutzer anzuwenden.
Meine Lösung war
observing_user ALL=kill -USR1 *