Hay ocasiones en las que por un motivo u otro queremos ejecutar aplicaciones gráficas como superusuario o como si lo estuviera ejecutando otro usuario distinto al nuestro. La mayoría de las personas que conozco (en especial las personas que llevan poco tiempo usando linux) lo hacen desde el terminal con el comando sudo o con el comando su, esta no es la forma más correcta de hacerlo además de que presenta un problema si por ejemplo quieres crear un lanzador que ejecute un programa como root o si quieres ejecutar un comando como root en el miniCLI (es el cuadro de ejecutar aplicación que se abre con ALT+F2).

A continuación voy a exponer varias formas de ejecutar aplicaciones gráficas como root.

cuadro-beesu

Con los comandos sudo o su

Para ejecutar un programa (gedit por ejemplo) con su o con sudo con permisos de root se abre un terminal y se escribe lo siguiente:

Con el comando sudo:

[usuario@localhost ~]$ sudo gedit

En el caso de que en vez de ser el usuario root el que ejecute el comando sea un usuario llamado pepe tendríamos que usar usar la directiva -u y como argumento el nombre del usuario. Ejemplo:

[usuario@localhost ~]$ sudo -u pepe 'gedit'

Con el comando su:

[usuario@localhost ~]$ su -c 'gedit'

Para que ejecute el comando como si fuera un usuario llamado pepe se usa la directiva -l y como argumento el nombre de usuario:

[usuario@localhost ~]$ su -l pepe -c 'gedit'

Si queremos ejecutar estos comandos desde la miniCLI no funcionarán pero hay un pequeño truco para que funcione que se trata de ejecutar en la miniCLI el comando de nuestro emulador de terminal pasando el comando que quieres que ejecute. Para ver más claro a lo que me refiero pongo un ejemplo usando gnome-terminal. Si al comando gnome-terminal le pasamos el argumento --command="gedit" abrirá un terminal y ejecutara gedit en ese terminal, sabiendo esto podemos ejecutar aplicaciones gráficas desde la miniCLI así:

gnome-terminal --command="su -l -c gedit"

Como mencioné anteriormente esta es la forma que yo más veo que utiliza la gente pero necesitas abrir un terminal y dependes de él para poder lanzar las aplicaciones. Para evitar la necesidad de abrir un terminal para ejecutar aplicaciones de forma gráfica existe los comandos gksu, kdesu y beesu.

gksu, kdesu y beesu

Antes de escribir los comandos debemos saber qué comando es el que tenemos que usar. gksu se utiliza por lo general en el escritorio de gnome o xfce y kdesu se utiliza para el escritorio de kde. Luego existe beesu que se utiliza en las distribuciones de fedora.

Ahora que ya sabemos que comando debemos usar vamos a ver un par de ejemplos. Para ejecutar gedit como superusuario desde la miniCLI pulsamos la combinación de teclas ALT+F2 y escribimos:

En gnome o xfce:

gksu gedit

En kde:

kdesu gedit

En fedora:

beesu gedit

Y para ejecutar un programa como un usuario llamado pepe se hace de forma muy similar en los tres comandos, se abre la miniCLI con ALT+F2 y se pasa la directiva -u y el nombre de usuario para gksu y kdesu y la directiva -l -P seguido del comando y el usuario en ese orden para beesu.

En gnome y xfce:

gksu -u pepe 'gedit'

En kdesu:

kdesu -u pepe 'gedit'

En fedora:

beesu -l -P 'gedit' pepe

Resumiendo

Ya hemos visto las formas que hay de ejecutar aplicaciones gráficas con permisos de administrado o de un usuario concreto pero debemos usarlos correctamente, esto quiere decir que para ejecutar aplicaciones gráficas la mejor opción es usar gksu, kdesu o beesu y para aplicaciones de terminal usar los comandos sudo o su.

Para más información de estos comandos se puede consultar las paginas man.