2016-04-07 3 views
1

Я пытаюсь вставить строку в файл /etc/ppp/chap-secret через bash script, что должно работать с php shell_exec.Ошибка разрешения путем выполнения скрипта bash через php shell_exec

Я надеюсь, что я на правильном пути или есть лучший способ? все, что моя работа, как показано ниже,

/var/www/test.php:

<?php echo shell_exec("cd /etc/ppp; bash test.sh"); ?> 

/etc/ppp/test.sh:

#!/bin/bash 
sed -i "/IP addresses/a client123* pw123123 192.168.0.101" chap-secrets 

Я также добавил www-data ALL=NOPASSWD: /etc/ppp/test.sh to sudoers.

Я получаю это error:

СЭД: не может открыть временный файл ./sedXym2Nn: Отказано в

от терминала все работает нормально, но мне это нужно от администратора сети с помощью кнопки.

Как устранить ошибку разрешений и получить этот процесс?

+0

Предоставление доступа к системным файлам веб-сервера крайне не рекомендуется. – tripleee

ответ

0

Предоставление доступа к системным файлам веб-сервера обязательно кажется безрассудным, но по крайней мере вы используете скрипт-оболочку, чтобы сервер не выполнял произвольные команды с привилегиями суперпользователя. С учетом этого:

Вы предоставили www-data sudo доступ к /etc/ppp/test.sh без пароля, но вы не выполняете команду с sudo из своей функции shell_exec.

Вызов shell_exec("cd /etc/ppp;sudobash test.sh"); должен сделать трюк.

Смежные вопросы