Nunca realice tareas de system admin usando PHP (para eso siempre preferí perl) y no estaba al tanto que PHP reestringia los llamados al sistema de las funciones setuid y demás como supongo que lo hace... Por lo que estuve viendo calculo que se podría desactivar el safe_mode y demás (aunque no estoy seguro) sin embargo creo que sería la última cosa que yo haría.
Me gusto bastante la idea que propuso Omar Arino

1) Por razones de seguridad tenes que hacer que esta aplicación funcione solo 
por la interfase lo (127.0.0.1) ya que es una flor de agujero.
2) Esta aplicación tiene que dormir mientras espera recibir algo por el puerto 
configurado.
3) Con PHP utilizas las funciones para SOCKET y te conectas con el otro 
programas. Mandas las señal adecuada.
4) Cuando el demonio escucha la señal correcta, ejecuta el programa que 
reinicia el servicio. Acá sí te puede funcionar el SUDO.

Sin embargo yo le cambiaria una pequeña cosita a esto: Ya que los sockets pueden ser accedidos por todos los usuarios del sistema, o sea, no hay permisos a nivel usuario para saber quien puede escribir en los mismo o no. No sé si a los sockets de domino unix se les podrá setear algún tipo de permiso, si se pudiese serían una buena opción para usar. Sino usando las funcions de IPC, usando una message queue por ejemplo, mediante los permisos de la misma podrías restringir que sólo el usuario que vos quieras pueda comunicarse con el proceso que levanta el servicio deseado... En caso de que no puedas acceder a las fucniones IPC desde php podrías implementar algo así mediante archivos (a los cuales tb se les puede asignar permisos de escritura segun usuario)... sin la necesidad de que el proceso que chequea el archivo sea corrido con el cron, sino simplemete hacer un demonio que quede bloqueado leyendo ese archivo, y comunicarte por ahí (sería un poco más optimo que andar corriendo el proceso a cada rato)... Claro que usando archivos se complicaría un poco más por el tema de si hay procesos concurrentes escribiendo, pero eso se puede manejar sin problemas en unix usando flock.

Saludos,
        Nicolás.

Saludos,
        Nicolás.

_______________________________________________
Lugro mailing list
[email protected]
http://www.lugro.org.ar/mailman/listinfo/lugro

Responder a