В настоящее время я работаю над сценарием 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
}