So führen Sie Shell -Skripte mit Sudo -Befehl unter Linux aus

So führen Sie Shell -Skripte mit Sudo -Befehl unter Linux aus

sudo ist ein leistungsstarkes Befehlszeilen -Tool, das eine “ermöglicht“erlaubter Benutzer”Einen Befehl als ein anderer Benutzer (standardmäßig der Superuser) ausführen, wie durch eine Sicherheitsrichtlinie definiert. Bei den meisten, wenn nicht allen Linux -Systemen wird die Sicherheitsrichtlinie von der angetrieben /etc/sudoers Datei.

Lesen Sie auch: 10 nützliche Sudoers -Konfigurationen zum Einstellen von 'sudo' unter Linux

Um ein Shell -Skript oder -Programm als Root auszuführen, müssen Sie sudo -Befehl verwenden. Jedoch, sudo Erkennt und leitet nur Befehle an, die in den in der angegebenen Verzeichnissen existieren Secure_Path im /etc/sudoers, Es sei denn, ein Befehl ist in der vorhanden Secure_Path, Sie werden einem Fehler wie dem unten entgegenwirken.

Dies wird auch dann geschehen, wenn das Skript in einem Verzeichnis in der vorhanden ist WEG Umgebungsvariable, denn wenn ein Benutzer anruft sudo, WEG wird ersetzt durch Secure_Path.

$ echo $ path $ ls -l $ sudo Proconport.Sh 80 
Sudo -Fehler beim Ausführen von Skript

Im obigen Szenario im Verzeichnis /home/aaronkilik/bin ist in dem WEG Umgebungsvariable und wir versuchen, das Skript auszuführen /home/aaronkilik/bin/proconport.Sch (Findet Prozess, das auf einem Port zuhört) mit Root -Privilegien.

Dann haben wir den Fehler begegnetSudo: Proconport.SH: Befehl nicht gefunden", seit /home/aaronkilik/bin ist nicht in der sudo Secure_path Wie im nächsten Screenshot gezeigt.

Überprüfen Sie den sudo sicheren Pfad

Um dies zu beheben, müssen wir das Verzeichnis mit unseren Skripten in der hinzufügen sudo Secure_path durch Verwendung der Visudo -Befehl durch Bearbeitung /etc/sudoers Datei wie folgt.

$ sudo visudo 

Aufmerksamkeit: Diese Methode hat schwerwiegende Sicherheitsauswirkungen, insbesondere auf Server, die im Internet ausgeführt werden. Auf diese Weise riskieren wir, unsere Systeme verschiedenen Angriffen auszusetzen, da ein Angreifer, der es schafft, Zugriff auf ein unsicheres (ohne Superuser -Privilegien) zu erhalten, das zu Secure_Path hinzugefügt wurde, mit einem böswilligen Skript/Programm mit Ausführen Sudo -Befehl.

Schauen Sie sich aus Sicherheitsgründen den folgenden Artikel auf der Sudo -Website an, eine Sicherheitsanfälligkeit für Secure_Path: https: // www.sudo.WS/sudo/alarms/Secure_path.html

Vorzugsweise können wir den absoluten Weg zu einem Skript bieten, während wir es mit sudo ausführen:

$ sudo ./Proconport.Sh 80 
Führen Sie das Skript mit dem SUDO -Befehl aus

Das ist es! Sie können die Liste der Artikel über den Befehl sudo befolgen:

  1. So führen Sie den Befehl "sudo" aus, ohne ein Passwort unter Linux einzugeben
  2. So halten Sie "sudo" -Kennwort -Timeout -Sitzung länger unter Linux
  3. So beheben Sie "Benutzername" befindet sich nicht in der Sudoers -Datei. Dieser Vorfall wird gemeldet “in Ubuntu
  4. Lassen Sie sich von Sudo beleidigen, wenn Sie ein falsches Passwort eingeben

Wenn Sie Fragen oder Gedanken zu diesem Artikel haben, teilen Sie uns über das folgende Kommentarformular mit.