Überprüfen Sie, ob ein Skript unter Linux als Root -Benutzer ausgeführt wird

Überprüfen Sie, ob ein Skript unter Linux als Root -Benutzer ausgeführt wird

Manchmal müssen die Shell -Skripte als Root -Benutzer ausgeführt werden, um einige Aufgaben mit Administratorrechten auszuführen. Im Allgemeinen können diese Aufgaben mit den Sudo -Befehlen erreicht werden. Wenn Sie in einigen Fällen den Benutzer weiterhin zwingen müssen, das Skript als Root -Benutzer auszuführen, können Sie Ihrem Skript einen Code hinzufügen, um zu überprüfen, ob das Skript mit dem Root -Benutzer ausgeführt wird oder nicht.

Überprüfen Sie, ob ein Shell -Skript als Root -Benutzer ausgeführt wird

Fügen Sie den folgenden Code zu Beginn des Shell -Skripts hinzu, um zu überprüfen, ob das Skript als Root -Benutzer ausgeführt wird. Wenn das Skript als Nicht-Root-Konto ausgeführt wird, wird mit dem Statuscode 1 beendet.

#!/usr/bin/env bash, wenn ["$ eUid" -ne 0]; dann echo "Bitte führen Sie dieses Skript als Root -Benutzer aus." Beenden Sie 1 fi
123456#!/usr/bin/env bash, wenn ["$ eUid" -ne 0]; dann echo "Bitte führen Sie dieses Skript als Root -Benutzer aus." Beenden Sie 1fi

Hier das EUID ist die Systemvariable, die die Benutzer-ID (UID) des aktuell angemeldeten Benutzer gespeichert hat. Die UID des „Root“ -Benutzers ist immer 0 auf den Linux -Systemen.

Anstatt die UID zu verwenden, können Sie auch mit dem angemeldeten Benutzernamen übereinstimmen. Der Wer bin ich Der Befehl bietet den aktuell angemeldeten Benutzernamen. Das folgende Skript prüft, ob das Skript als Root -Benutzer ausgeführt wird oder nicht.

#!/usr/bin/env bash if ['whoami' != 'root']; dann echo "Bitte führen Sie dieses Skript als Root -Benutzer aus." Beenden Sie 1 fi
123456#!/usr/bin/env bash if ['whoami' != 'root']; dann echo "Bitte führen Sie dieses Skript als Root -Benutzer aus." Beenden Sie 1fi

Überprüfen Sie, ob ein Shell-Skript als Nicht-Root-Benutzer ausgeführt wird

Manchmal müssen die Skripte als Nicht-Root-Konto ausgeführt werden. In diesem Fall können Sie das folgende Snippet hinzufügen, um nach einem Benutzerkonto zu suchen und nur dann fortzufahren, wenn das Skript als normaler Benutzer ausgeführt wird.

#!/usr/bin/env bash if ["$ eUid" -Eq 0]; dann echo "Bitte führen Sie dieses Skript als Nicht -Root -Benutzer aus." Beenden Sie 1 fi
123456#!/usr/bin/env bash if ["$ eUid" -Eq 0]; dann echo "Bitte führen Sie dieses Skript als Nicht -Root -Benutzer aus

Abschluss

In dieser schnellen Anleitung haben Sie gelernt, Einschränkungen in einem Shell-Skript hinzuzufügen, die als Root-Benutzer oder Nicht-Root-Benutzer ausgeführt werden können. Wenn ein anderer Benutzer ausgeführt wird, wird das Skript sofort beendet.