Me gustaría crear un script php para ejecutar un comando de shell y devolver su resultado. El servidor requiere una clave privada. Cuando primero decidí probar esto creé esto:Cómo ejecutar un comando de shell desde un script php
<?php
$command = "ls";
$output = shell_exec($command);
echo "<pre>$output</pre>";
?>
Eso funcionó bien. Pero cuando cambié $command
al comando tenía muchas ganas de correr:
$command = "/etc/init.d/mycontrollerd status /etc/mycontrollerconfig";
que me dio este resultado:
You need root privileges to run this script
Mi conjetura es que necesito utilizar sudo
. Por supuesto, eso requerirá poner el archivo pem en algún lugar del servidor. Suponiendo que lo haga, ¿qué debería ser exactamente $command
? ¿Debo usar shell_exec()
, exec()
, system()
o alguna otra cosa?
Si bien * también * es importante que la cuenta de usuario esté autorizada, eso no significa que no haya una mejor opción para usar la función PHP. ¿Cuál es el mejor? –
@Kenneth Vogt 'exec', ya que no involucra innecesariamente el shell y devuelve el resultado, o' passthru', que directamente genera el resultado, pero requeriría alguna modificación del código original. – phihag