
Ich möchte, dass alle meine Benutzer ein Bash-Skript ausführen können. Dieses Bash-Skript muss jedoch über Root-Rechte verfügen. Ich möchte, dass dieses Skript schreibgeschützt ist und mit Root-Rechten ausgeführt werden kann.
mein Bash-Skript:
#!/bin/bash
/sbin/swapoff -a
bei meiner Suche habe ich eine Lösung gefunden, aber sie funktioniert nicht. Dies ist die Lösung:
# chown root:root monshell.sh
# chmod 4755 monshell.sh
# exit
$ ./monshell.sh
aber ich habe diesen Fehler, wenn ich es als Basisbenutzer ausführe: Swapoff: Kein Superuser.
Antwort1
Das Erstellen eines Su-Root-Bash-Skripts ist gefährlich. Ein Bash-Skript lässt sich zu leicht auf eine Weise manipulieren, von der Sie nicht erwarten, dass sie andere Befehle ausführt. Jede neue ausführbare Su-Root-Datei stellt ein neues Sicherheitsrisiko dar.
Der bevorzugte Weg, solche Rechte zu gewähren, ist mit sudo. Erstellen Sie eine Datei /etc/sudoers.d/swapoff wie folgt:
ALL ALL = /bin/swapoff -a
Dann können alle Benutzer (erster ALLE) auf allen Hosts (zweiter ALLE) ausführen sudo /bin/swapoff -a
. Und jedes Mal, wenn sie das tun, wird es im Syslog protokolliert.