Как запустить bash скрипт из php?

ОС Debian, Nginx
Я не особый знаток php, поэтому вопрос возможно глупый.
Можно ли как-то запустить bash скрипт с помощью php кода, не используя exec, shell_exec,..?
Если надо задать права на выполнение одной команды используя sudo - без проблем.
Просто не хочется уж сильно проседать по безопасности.

--------------------

Дополнительный вопрос: Если никак нельзя решить основной вопрос, то подскажите как использовать изоляцию php через chroot?
1) Я прописал в php-fpm.conf:
chroot = /var/www
chdir = /

2) Создал минимальное окружение:
mkdir /var/www/{etc,lib/x86_64-linux-gnu};
cp /etc/hosts /var/www/etc/hosts;
cp /etc/resolv.conf /var/www/etc/resolv.conf;
cp /lib/x86_64-linux-gnu/libnss_dns.so.2 /var/www/lib/x86_64-linux-gnu/libnss_dns.so.2

3) Перезагрузил php-fpm

В итоге при входе на сайт вордпресс получаю: No input file specified.
  • Вопрос задан
  • 454 просмотра
Решения вопроса 1
Tolly
@Tolly Автор вопроса
Выбрал для себя следующее решение:
подключение нужных программ, как библиотек
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
Sanes
@Sanes
Если нужны привилегии, то только php-cli.
Можно из crontab или по взрослому через планировщик и очереди.
Ответ написан
kotomyava
@kotomyava
Системный администратор
Либо вы разрешаете как-то выполнение программ, и можете сделать это и вы и потенциальный взломщик, либо нет - чудес тут не бывает.

По изоляции - вам надо менять конфиг веб сервера, и имя скрипта передавать относительно вашего chroot. А передаётся оно, вероятно, относительно корня сейчас. Ну и окружение слишком уж минимальное. =)

P.S. Вам правильно писали, что очереди это тоже вполне инструмент изоляции.
Ответ написан
@grinat
Ну есть вариант, например подменить стандартный mail клиент в линукс, и тогда когда будет выполняться mail() то будет запускаться скрипт)
А вообще, не страдай херней, и запускай через exec.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы