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 ( /root
nur hier )
Berechtigung für die Datei ausführen
Leseberechtigung für die Datei
Es kann eine gute Idee sein, /root
unberührt zu lassen und ein anderes Verzeichnis für diesen Zweck zu erstellen (oder zu verwenden) (z /usr/local/bin
. B. ). Sie können user1
den einzigen Benutzer, der das Skript ausführen darf, zum Eigentümer der Datei machen oder root
als Eigentümer und Gruppe belassen, die einfachen Zugriffsberechtigungen ( chmod
) festlegen 770
und user1
mit 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/sudoers
Eintrag 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 root
auf Ihren sudo
Befehl 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.
sudo
Befehl, den Sie geschrieben haben?