Führen Sie das Skript als einen anderen Benutzer als root aus [geschlossen]

11

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

Bulkmoustache
quelle
1
Die Frage ist nicht ganz klar: "Sie sind root und möchten das Skript als Benutzer1 ausführen" oder "Sie sind Benutzer1 und möchten das Skript als root ausführen"? Wenn der erste Fall der Fall ist, was ist das Problem mit dem sudoBefehl, den Sie geschrieben haben?
Michas
Check outsu(1)
vonbrand

Antworten:

10

Ich muss sagen, dass es mir nie gefallen hat sudo(besonders die Konfigurationen). Einfach alt su:

su -c 'command' - user

Wird von root ausgeführt und fordert nicht zur Eingabe eines Kennworts auf.

Orion
quelle
0

Der Benutzer muss haben

  1. Berechtigung für den gesamten Verzeichnispfad ausführen ( /rootnur hier )

  2. Berechtigung für die Datei ausführen

  3. 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 .

Hauke ​​Laging
quelle
0

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.


quelle