Je cours Nginx sous la construction d'Openresty ainsi le script de Lua est permis. Je veux créer un emplacement URI (qui sera sécurisé avec l'authentification SSL + en plus de la liste blanche IP) qui permet aux appels webhooks provenant de sources autorisées d'exécuter des scripts bash sur le serveur en utilisant l'autorisation root. par exemple.Est-il possible d'exécuter un script bash avec l'autorisation root de NGINX et obtenir la sortie?
https://someserver.com/secured/exec?script=script.sh¶m1=uno¶m2=dos
NGINX utiliserait le 'scénario' et '# param' GET arguments de requête pour exécuter "script.sh uno dos" dans une coquille. Il capture la sortie du script et le code de retour bash (si c'est possible). Je comprends les implications en termes de sécurité de l'exécution de NGINX en tant que commandes arbitraires exécutant la racine, mais comme mentionné, l'accès à l'URI serait sécurisé. Est-ce possible via des modules natifs NGINX ou peut-être des scripts Lua? Tout exemple de code pour me lancer?
Merci.
Utilisez https://github.com/jprjr/lua-resty-exec ou https://github.com/juce/ lua-resty-shell. Démarrez Sockproc en tant que root. –
Merci. Je me demande s'il y a ' d'une façon qui n'exige pas l'exécution d'un démon. Semble lua os.execute peut exécuter une commande shell mais ne peut pas renvoyer son code de sortie ou d'état. J'ai pensé à créer un script bash qui prend le nom du script et ses arguments (comme c'est son propre args) et l'exécute. Ensuite, la sortie et le code de sortie sont stockés dans des fichiers texte afin qu'ils puissent être lus par Lua. Prob devrait transmettre un identifiant unique au script wrapper pour être utilisé comme nom de fichier afin de garantir que deux appels n'écrivent pas sur le même fichier. Je me demande si quelqu'un peut penser à une solution plus propre. – bobbybay
https://stackoverflow.com/questions/132397/get-back-the-output-of-os-execute-in-lua –