Um auf die Sudoers-Methode zurückzukommen: Ich glaube, Sie waren fast da, bevor Sie aufgaben. Wenn ich mir Ihre neuesten Kommentare anschaue, möchte ich nur etwas ansprechen, das wahrscheinlich Abhilfe für Sie schafft:
Wenn Sie ein Skript als root ausführen, müssen Sie sudo nicht von dort aus aufrufen.
Ich habe ein Skript wie dieses:
#! /bin/bash
echo $USER
whoami
Wenn ich renne, sudo ./myscript
sehe ich root
für beide zurückgegeben. Die Sitzung, in der das Skript ausgeführt wird, ist eine Root-Shell.
Kurz gesagt bedeutet dies, dass alles, was Sie in Ihrem Skript tun, bereits über Root-Berechtigungen verfügt. Sie müssen nicht anrufen sudo
(nicht, dass es weh tun sollte - hat root
normalerweise sudo
Berechtigungen).
Schreiben Sie also Ihr Skript, chown
es an root
und chmod
es an 700
(damit nur root es ausführen, lesen oder bearbeiten kann) und erlauben Sie dann Ihren Benutzern, es durch Sudoer auszuführen. Das sollte funktionieren.
Wenn es nicht funktioniert, ist es wahrscheinlich ein größeres Problem mit dem Skript, nicht mit dem Berechtigungsframework. Ich würde vorschlagen, einem Benutzer vollen sudo
Zugriff zu gewähren (das Hinzufügen zur Administratorgruppe ist der einfachste Weg) und dann Ihr Skript auszuführen.
/etc/profile
oder~/.profile
weil das Ausführen von Code in diesen Skripten von der Benutzer-Shell durchgeführt wird und der Kontrolle des Benutzers unterliegt, während, wenn Sie nicht möchten, dass der Benutzer die hat Um Programme als sichroot
selbst ausführen zu können, muss dies von einem Dienst ausgeführt werden, der außerhalb der Prozesse des Benutzers ausgeführt wird. ... Es könnte hilfreich sein, wenn Sie uns den Zweck des Skripts mitteilen, das Sie ausführen möchten.