Wie kann ich vom Root-Benutzer einem anderen Benutzer die Berechtigung erteilen, die Datei /root/script.sh auszuführen?
Die Idee ist, das Skript wie auszuführen sudo -u user1 /root/script.sh
su(1)
Wie kann ich vom Root-Benutzer einem anderen Benutzer die Berechtigung erteilen, die Datei /root/script.sh auszuführen?
Die Idee ist, das Skript wie auszuführen sudo -u user1 /root/script.sh
su(1)
Antworten:
Der Benutzer muss haben
Berechtigung für den gesamten Verzeichnispfad ausführen ( /rootnur hier )
Berechtigung für die Datei ausführen
Leseberechtigung für die Datei
Es kann eine gute Idee sein, /rootunberührt zu lassen und ein anderes Verzeichnis für diesen Zweck zu erstellen (oder zu verwenden) (z /usr/local/bin. B. ). Sie können user1den einzigen Benutzer, der das Skript ausführen darf, zum Eigentümer der Datei machen oder rootals Eigentümer und Gruppe belassen, die einfachen Zugriffsberechtigungen ( chmod) festlegen 770und user1mit ACLs ( setfacl) hinzufügen .
Wenn sich Ihr Skript im Stammverzeichnis befindet, dann
$ LC_ALL=C ls -ld /root
drwx------ 17 root root 4096 Mar 5 20:14 /root
user1 kann nur root sein.
Ihr /etc/sudoersEintrag wird so aussehen
Cmnd_Alias SCRIPT=/root/script.sh
# user who is allowed executing /root/script.sh
%user ALL = (ALL) SCRIPT
Normalerweise bearbeiten Sie die Datei mit visudo
Sie müssen dann auch nicht -u rootauf Ihren sudoBefehl setzen.
Das %bedeutet die Benutzergruppe. Wenn Sie es weglassen, darf nur der Benutzer den Befehl ausführen. Wenn Sie möchten, dass eine Gruppe von Benutzern es ausführt, lassen Sie es so, wie es ist.
sudoBefehl, den Sie geschrieben haben?