[ubuntu-bo] Ejecutando comando Linux con php

Mario César Señoranis Ayala mariocesar.c50 en gmail.com
Mar Ago 17 14:23:39 BST 2010


  El 16/08/10 19:20, diego ibanez escribió:
>
> Necesito reiniciar el servicio desde php, ya he intentado con:
> squid -k reconfigure
> No me da error utilizando esta línea de comando, pero no surte efecto 
> al probar. Lo pruebo desde la terminal de ubuntu y recien surte 
> efecto, probando desde los errores de squid modificando texto por ejemplo.
>
> No se donde puede estar mi error, tal vez sea de permiso, si alguien 
> me puede ayudar por favor o una guía al respecto.
>
> muchisimas Gracias para todos.
>
> Atte.
> Diego Ibañez

Depende de que distro estés usando, yo ejecuto scripts de servicios 
desde el usuario www-data, usando el archivo /etc/sudoers

Mira, por ejemplo en ubuntu si el usuario 'admin' tiene permisos de 
administrador y ejecuta:

$ /etc/init.d/apache2 restart

Se le niega los permisos, pero si funciona si:

$ sudo /etc/init.d/apache2 restart

la dificultad, es que sudo pregunta por el password. y por lo menos yo 
no se como enviarle la contraseña, y si lo hiciera seria muy mala idea ;)

Si ejecutas $ sudo visudo -f sudoers, o editas directamente $ sudo vim 
/etc/sudoers

añades una linea que tal vez parezca:

www-data www-data = NOPASSWD: /etc/init.d/apache2

Estas estableciendo, que www-data puede ejecutar el script 
/etc/init.d/apache2 y no es necesario preguntarle el password.

Bibliografía

     - Iniciación de sudo para bisoños - 
http://bulma.net/body.phtml?nIdNoticia=1779
     - 
http://stackoverflow.com/questions/2060168/php-run-linux-command-as-sudo
     - Manual Visudo - http://www.rpublica.net/sudo/visudo.html
     - Sudoers Manual Page - http://www.sudo.ws/sudo/sudoers.man.html

-- 
Mario César Señoranis Ayala
http://www.noentrar.net
http://twitter.com/mariocesar_bo
http://facebook.com/mariocesar




Más información sobre la lista de distribución Ubuntu-bo