Невозможно выполнить команды оболочки с помощью PHP-скрипта - PullRequest
0 голосов
/ 13 мая 2019

В настоящее время я работаю над сценарием PHP, который может выполнять команды оболочки на корневом сервере linux.

Я хочу дать любому пользователю с правильным паролем (htacces) разрешение на выполнение этого скрипта (для создания клиента OpenVPN). Когда я перехожу на интерфейс plesk для выполнения сценария PHP в диспетчере файловых данных, я получаю внутреннюю ошибку сервера 500. Я уже изменил разрешение сценария PHP на 777 для целей тестирования.

Я также контролировал php.ini, чтобы проверить, есть ли shell_exec / proc_open / exec в списке запрещенных функций.

Как я могу настроить скрипт server / php, чтобы у него были права root?

Можно ли войти в систему с правами root при выполнении команд оболочки сценарием php?

Заранее спасибо.

Хорошего дня.

РЕДАКТИРОВАТЬ: текущий код:

shell_exec('cd ' . $path-openvpn-ca);
shell_exec('source ./vars');


$descriptorspec = array(
    0 => array("pipe", "r"),  // stdin read by child
    1 => array("pipe", "w"),  // stdout written to by child
    2 => array("file", "error.log", "a") // stderr
);
$process = proc_open($path_openvpn-ca. "/build-key.sh LC_1234", $descriptorspec, $pipes);
if (is_resource($process)) {
    fwrite($pipes[0], PHP_EOL. PHP_EOL. PHP_EOL. PHP_EOL. PHP_EOL. PHP_EOL. PHP_EOL. PHP_EOL. "." . PHP_EOL. "." PHP_EOL. "y" . PHP_EOL. "y". PHP_EOL);
    fclose($pipes[0]);
    $output = $pipes[1]; // $pipes[0] is the input and $pipes[2] is the error output
}
...