✔️ Сегодня запускаем bash скрипт из nginx по локейшену.
Идея такая, при открытии урла в браузере
https://bashdays.com/bashdays.sh запускается bash скрипт, который лежит на сервере в папке /tmp/bashdays.sh.А зачем это нужно? Элементарно — чтобы запустить Bash скрипт!
Но никогда так не делай.
Чтобы подобное реализовать, тебе понадобится
fcgiwrap либо lua. Из обычного nginx, который в коробке, это сделать невозможно. Политика безопасности, вся хуйня.Я возьму
fcgiwrap, не хочу компилить модуль lua. Если у тебя есть lua, можешь через него подобное реализовать. Примеры ниже.Ставим врапер:
apt install fcgiwrap
Закидываем скрипт в
/tmp/bashdays.sh#!/bin/bash
echo "Content-type: text/html"
echo ""
echo "<h1>Hello Bashdays</h1>"
echo "<p>This is a test bash script.</p>"
echo "hello bashdays" > file.txt
В конфиге nginx городим локейшен:
location /bashdays.sh {
fastcgi_pass unix:/var/run/fcgiwrap.socket;
fastcgi_param SCRIPT_FILENAME /tmp/bashdays.sh;
include fastcgi_params;
}Заранее убедись что сокет
fcgiwrap создался и лежит в нужном месте. На этом собственно всё. Да, надо сделать еще nginx reload.Открываем
https://bashdays.com/bashdays.sh и лицезрим «Hello Bashdays This is a test bash script.».Но это еще не все. В папке
/tmp появился файл file.txt. Как видишь все получилось. Дальше включай фантазию и твори.Для
lua это будет выглядеть как-то так:
location /bashdays.sh {
content_by_lua_block {
os.execute("/tmp/bashdays.sh")
}
}
Я этот код не проверял, он всяко не работает, на коленке накидал, но думаю главное тут суть.
Кстати через php наверное тоже можно башник дернуть, там сокет так же подкинуть и через «хуй-пизда-лопата» запустить скрипт.
Вообще промышлять таким - фу! Если ты кому-то расскажешь, то тебя выгонят ссаными тряпками. Всё чисто ради экспериментов. Изучай!
tags: #linux #nginx #bash
@ВАSНDАYS | BАSHDАYS.CОM