elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Sistemas Operativos
| |-+  GNU/Linux (Moderador: MinusFour)
| | |-+  Ejecutar desde PHP una aplicación GUI
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ejecutar desde PHP una aplicación GUI  (Leído 2,852 veces)
SnakeDrak

Desconectado Desconectado

Mensajes: 243


[GPG: 0x9680A09E]


Ver Perfil
Ejecutar desde PHP una aplicación GUI
« en: 24 Octubre 2010, 19:02 pm »

Hola,

Mi pregunta es cómo puedo decirle al servidor X que ejecute un programa desde un usuario por consola.

Usuario en concreto: www-data
Usuario con el servidor X: snake

Al programa le puedo pasar el display: programa :0.0, pero esto no funciona:

Código
  1. programa: could not open display ":0.0", aborting.
  2.  

También probé con export DISPLAY (que es lo mismo que pasarle el display al programa) y tampoco. Es posible que no entienda bien como funciona eso de los displays...

Un saludo y muchas gracias por su colaboración.


En línea

Foxy Rider


Desconectado Desconectado

Mensajes: 2.407


Deprecated


Ver Perfil WWW
Re: Ejecutar desde PHP una aplicación GUI
« Respuesta #1 en: 24 Octubre 2010, 21:20 pm »

Seguramente estarás usando xauth .. con este método cuando se establece una sesión en X, se usa una "cookie" para autentificarse al servidor, y como ese otro usuario no dispone de la cookie ... no puede hacerlo ... copiá  .Xauthority del usuario con la sesión en X (snake) cuidando los respectivos permisos al home del usuario el cual quieras lanzar aplicaciones gráficas (sería www-data) y listo ^^

Para más info :
http://en.wikipedia.org/wiki/X_Window_authorization#Cookie-based_access
http://www.xs4all.nl/~zweije/xauth-6.html

Saludos.


« Última modificación: 24 Octubre 2010, 21:48 pm por vertex@Symphony » En línea

SnakeDrak

Desconectado Desconectado

Mensajes: 243


[GPG: 0x9680A09E]


Ver Perfil
Re: Ejecutar desde PHP una aplicación GUI
« Respuesta #2 en: 24 Octubre 2010, 23:05 pm »

Hola,

Muchas gracias como siempre Alex :3.

Aquí explico la solución, yo había leído sobre xhost y claro como bien dijiste después de xhost queda xauth. Copié el fichero .Xauthority al directorio home de www-data (/var/www), le cambie el usuario y grupo por www-data, accedí desde consola y funciona sin problemas.

Pero desde PHP con la función exec no se ejecutaba, entonces como bien pone en la documentación que me pasaste, le dije donde se encontraba el fichero .Xauthority porque desde PHP no lo tomaba.. con lo cual quedó:

Código
  1. exec("export XAUTHORITY=/var/www/.Xauthority; programa :0.0");

Como se observa tuve que poner:
Código
  1. export XAUTHORITY=/var/www/.Xauthority

Muchas gracias de nuevo por tu ayuda y saludos!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines