The best way to do this is:
$descriptorSpec = array( 0 => STDIN, 1 => STDOUT, 2 => STDERR, ); if (posix_getuid() === 0) { echo "Root\n"; } else { echo "No root\n"; $command = 'sudo ' . PHP_BINARY . ' ' . implode(' ', $_SERVER['argv']); $pipes = []; $process = proc_open($command, $descriptorSpec, $pipes); if (is_resource($process)) { proc_close($process); } }
It runs the same command again, with sudo prefixed.
Timon de groot
source share