ich Nginx unter Openresty renne bauen so Lua Scripting aktiviert ist. Ich mag einen URI Ort erstellen (die mit SSL + Authentifizierung zusätzlich zur IP-Whitelist gesichert werden), die webhooks Anrufe von autorisierten Quellen ermöglicht Bash-Skripte auf dem Server mit Root-Berechtigung ausführen. z.B.Ist es möglich, einen Bash-Skript mit root-Berechtigung von NGINX und erhält die Ausgabe auszuführen?
https://someserver.com/secured/exec?script=script.sh¶m1=uno¶m2=dos
NGINX würde die 'script' verwenden und 'param #' GET Anfrage Argumente "script.sh uno dos" in einer Shell auszuführen. Es erfasst die Skript-Ausgabe und den Bash-Return-Code (wenn das möglich ist).
Ich verstehe die Auswirkungen auf die Sicherheit von NGINX als root läuft und beliebige Befehle ausgeführt, sondern als Zugang zum URI erwähnt würde gesichert werden.
Ist dies möglich über native NGINX Module oder vielleicht Lua Scripting? Irgendein Beispielcode, um mich zu beginnen?
Vielen Dank.
Verwenden https://github.com/jprjr/lua-resty-exec oder https://github.com/juce/ Lua-Resty-Schale. Starten Sie Sockproc als root. –
Danke. Ich frage mich, ob es ' s eine Möglichkeit gibt, die nicht erfordert, einen Daemon auszuführen. Scheint, dass lua os.execute einen Shell-Befehl ausführen kann, aber seinen Ausgabe- oder Statuscode nicht zurückgeben kann. Ich dachte daran, ein Bash-Wrapper-Skript zu erstellen, das den Skriptnamen und seine Argumente (wie es eigene Argumente sind) übernimmt und ausführt. Dann wird der Ausgabe- und Exit-Code in Textdateien ausgegeben, damit sie von Lua gelesen werden können. Prob sollte eine eindeutige ID an das Wrapper-Skript übergeben, das als Dateiname verwendet wird, um sicherzustellen, dass keine zwei Aufrufe über dieselbe Datei geschrieben werden. Ich frage mich, ob jemand an eine sauberere Lösung denken kann. – bobbybay
https://stackoverflow.com/questions/132397/get-back-the-output-of-os-execute-in-lua –