Erlauben Sie allen Benutzern, ein Bash-Skript als Root auszuführen

Erlauben Sie allen Benutzern, ein Bash-Skript als Root auszuführen

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.

verwandte Informationen