Как выполнить sh скрипт из PHP, который создаст место, юзера на сервере и загрузит MODx
Здравия всем.
Вопрос скорее всего будет направлен к Василию, однако буду благодарен и тем, кто готов помочь. :)
Решил сделать для себя небольшую панельку, как у Василия на хостинге. Столкнулся с траблой. Как я понял, запускать shell скрипт (который бы создавал место для сайта и заливал modx) нужно от рута или от пользователя, который имеет доступ ко всем нужным каталогам и т.д. Проблема в том, что я не могу понять, как это сделать. С трудом удалось через PHP запустить тестовый sh скриптик и передать в него нужный аргумент.
Василий и все, кто может помочь. Будьте добры, объясните, как можно запустить скрипт от рута из под PHP, либо дать пользователю все необходимые права на выполнение скрипта, который бы создавал место, пользователя и заливал modx? БлагоДарю.
P.S.: Сервер настроен по инструкции Василия. За что ему огромная благодарность!!!
Вопрос скорее всего будет направлен к Василию, однако буду благодарен и тем, кто готов помочь. :)
Решил сделать для себя небольшую панельку, как у Василия на хостинге. Столкнулся с траблой. Как я понял, запускать shell скрипт (который бы создавал место для сайта и заливал modx) нужно от рута или от пользователя, который имеет доступ ко всем нужным каталогам и т.д. Проблема в том, что я не могу понять, как это сделать. С трудом удалось через PHP запустить тестовый sh скриптик и передать в него нужный аргумент.
Василий и все, кто может помочь. Будьте добры, объясните, как можно запустить скрипт от рута из под PHP, либо дать пользователю все необходимые права на выполнение скрипта, который бы создавал место, пользователя и заливал modx? БлагоДарю.
P.S.: Сервер настроен по инструкции Василия. За что ему огромная благодарность!!!
Комментарии: 5
Насколько я понимаю, у Василия запущен демон на питоне, который имеет необходимые права и в него зашит весь функционал. Он слушает сокет от панельки и принимает команды, поэтому с безопасностью полный порядок.
я сделал это на nodejs. Тоже по примеру Василия, не знаю как в пхп, но у себя разбил скрипт на куски, и выполнял команды по очереди, с необходимыми параметрами. Процесс выполняется из под рута, в конце действия через chown все файлы и папки назначаются созданному юзеру.
PS. качество видео плохое, первый раз снимал…
PS. качество видео плохое, первый раз снимал…
круто круто. можно по-подробнее, каким образом реализовано?
как можно запустить скрипт от рута из под PHP, либо дать пользователю все необходимые права на выполнение скрипта
Сервер настроен по инструкции Василия.Основной смысл моей инструкции именно в том, чтобы не давать сайтам дополнительных прав. Каждый сайт запускается из под своего пользователя и он имеет доступ только к своим файлам.
А теперь представь, что если бы существовал способ делать так, как ты хочешь? Выходит, что любой сайт мог бы выполнять команды от root и в чем тогда защита? Злоумышленник ломает сайт и получает доступ ко всему серверу, ко всем сайтам и файлам.
Так что, ответ прост — это невозможно.
Процесс, который создаёт сайты должен работать не как обычный сайт. Это или отдельный демон на Python, как у нас на хостинге, или отдельный процесс на PHP, но запущенный от root и защищенный по IP от случайного коннекта. Или просто консольные скрипты, как в моей инструкции.
Когда я делал тестовые сайты, там использовались именно эти скрипты, которые запускались по расписанию раз в n минут.
То есть, юзер заходил на обычный сайт, заказывал себе тест, запрос сохранялся в БД, а сервер уже раз в 10 минут от root запускал скрипт, который проверял заказы в БД, создавал тестовые сайты и отправлял на email уведомления об этом.
Ты можешь сделать так же.
Спасибо, Василий, за подробное объяснение!
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.