lunes, 14 de marzo de 2011

Ejecutar usando sudo con exec();

El usuario que usa Apache en Linux es www-data, entonces necesitaremos decir al sistema que este usuario puede ejecutar sudo, incluo le podemos especificar los comandos.
Esto lo haremos en el archivo /etc/sudoers, deberemos añadir al final esta línea:

www-data ALL=NOPASSWD: ALL

Y ya podremos ejecutar un script con comandos sudo, en mi caso:
shell_exec("./scripts/creaUbuntu.sh");


La idea la he sacado, tras muchas vueltas, de aquí.

Os dejo como queda mi /etc/sudoers.

También deberemos de dar permisos a todos los scripts que se ejecutan y no son creados por www-data.

1 comentario:

Anónimo dijo...

Muchisimas gracias! He solucionado mi problema con esto!