En Windows existe el comando «runas«, que permite a un usuario ejecutar programas específicos con diferentes permisos a los del usuario que ha iniciado la sesión en el sistema. En Linux y otros sistemas operativos UNIX, tenemos el comando su o sudo para el mismo propósito.
Sin embargo, el comando sudo no es tan útil cuando se trata de la ejecución de aplicaciones X Window. Por ejemplo, cuando iniciamos sesión como un usuario normal y tenemos que ejecutar una aplicación de X Window como usuario root. Por ejemplo, si ejecutamos una aplicación como xeyes o cualquier otra como administradores, debemos pasará lo siguiente:
$ su - Password [*aquí introducimos la contraseña*] # xeyes
Si hacemos ésto, obtendremos el siguiente mensaje de error:
(program:15074): Gtk-WARNING **: cannot open display
También es posible que el error sea el siguiente:
** WARNING ** cannot open display
El problema del error son dos variables de entorno: DISPLAY y XAUTHORITY. Es necesario configurarlas correctamente para ejecutar programas de X Window como usuario root mientras estamos conectados como un usuario normal.
Sin embargo, tanto KDE como Gnome vienen con herramientas para hacer frente a este problema. Vamos a ver varios métodos para solucionarlo:
Contenidos
El comando kdsu en KDE
Si nuestro escritorio es KDE, podemos utilizar el comando kdsu en el shell / intérprete de comandos:
$ Kdesu xeyes
El comando gksuexec en Gnome
Si eres usuario de Gnome, puedes utilizar el comando gksuexec en el shell / intérprete de comandos:
$ gksuexec
También puedes utilizar la interfaz de usuario si en el escritorio vas a Aplicaciones -> Herramientas del sistema -> Ejecutar como otro usuario:
También os vamos a enseñar dos métodos alternativos, compatibles con cualquier sistema.
Método alternativo: Crear un alias
Puedes crear un alias del siguiente modo:
$ alias runas='su -c $@'
Ahora debes agrear el alias al script de inicio en bash:
$ echo "alias runas='su -c $@'" >> .bash_profile
Ya puedes utilizar el alias del siguiente modo para iniciar cualquier programa X Window:
$ runas nombre-aplicacion runas xeyes
Método alternativo: Configurar las variables de entorno
Como decíamos, el problema están en las variables de entorno DISPLAY y XAUTHORITY, que no tienen el valro correcto cuando ejecutamos una aplicación como administrador habiéndonos logueado inicialmente como un usuario normal.
Para solucionar el problema. debemos configurar estas dos variables para que apunten a las variables de entorno de los usuarios que están logueados en el sistema en cada momento. Por ejemplo, imagínate que actualmente has accedido al sistema como el usuario neoguias. Estos serían los pasos para configurar las variables de entorno:
4.1. Obtén permisos de super usuario:
neoguias@debian: ~ $ su - debian:~#
4.2. Configuración de las variables:
# export DISPLAY=0:0 # export XAUTHORITY=/home/neoguias/.Xauthority
4.3. Ya podemos ejecutar la aplicación que utiliza X Window como usuario root. Por ejemplo, para xeyes:
# xeyes
Todo funcionará como la seda. Espero que os haya sido útil.