Ejecutar comandos en PHP
3 seguidores
Hola,
Les pido ayuda porque ando un poco desesperado, tengo unos comandos en linux:
"ffmpeg -i /home/devuser/public_html/material/test1.flv -sameq /home/devuser/public_html/material/test1.mpg"
Que sirven para unir videos, y que necesito ejecutar desde php, pero mi problema es que cuando pregunto que usuario es PHP me dice nobody. Y claro creo que tengo problemas de permisos. Como cambio esto? alguna otra idea?
Adjunto esto:
<?php echo("Test SHELL<br>");
system('whoami');
echo("<br>");
echo exec('whoami');
echo("<br>");
echo shell_exec('whoami');
echo("<br>");
echo `whoami`;
?>
Esto retorna todo nobody.
Muchisimas gracias para el que pueda echarme una mano.
Panchesco
Vixx
Es habitual que el proceso del servidor web se ejecute con el usuario nobody. Hay extensiones de Apache, como suphp o suexec. Otra opción es trabajar en un directorio donde tenga permisos suficientes el usuario nobody (aunque si estás en un servidor compartido puede haber problemas de seguridad).
KingOfSnake
Hablo desde la ignorancia.... , pero como dice Vixx podrías dar permisos al directorio. O, no se podría cambiar desde php a un usuario con más permisos y luego ejecutar los comandos que tu dices ?
Vixx
Me acabo de dar cuenta de que antes he dejado cortada una frase. Las extensiones que he puesto permiten que cada script se ejecute mediante el usuario que necesites, normalmente el propietario del script, en lugar de nobody.
Panchesco
Muchas gracias por la respuesta. A ambos.
Estoy en un RedHat compartido, como dices es probable que tenga problemas con la seguridad. Voy a mirar de instalar y testar esas extensiones. El problema de dar permisos a esa carpeta es que voy a tener una informacion que no quiero que este accesible (aunque sea temporalmente).
Voy a instalar una de estas extensiones y a probarla.
Panchesco
Hola, ya tengo el suEXEC instalado en mi servidor, pero no entiendo como dar permisos a esa carpeta o como hacer que sea otro usuario el php, me puedes ayudar por favor.
Gracias!
Panchesco
Alguien tiene alguna idea? Gracias :)