Follow Techotopia on Twitter

On-line Guides
All Guides
eBook Store
iOS / Android
Linux for Beginners
Office Productivity
Linux Installation
Linux Security
Linux Utilities
Linux Virtualization
Linux Kernel
System/Network Admin
Programming
Scripting Languages
Development Tools
Web Development
GUI Toolkits/Desktop
Databases
Mail Systems
openSolaris
Eclipse Documentation
Techotopia.com
Virtuatopia.com
Answertopia.com

How To Guides
Virtualization
General System Admin
Linux Security
Linux Filesystems
Web Servers
Graphics & Desktop
PC Hardware
Windows
Problem Solutions
Privacy Policy

  




 

 

Debian GNU/Linux Reference Guide
Prev Home Next

9.4.11 Adquirir privilegios de superusuario en X

Si una aplicaci�n gr�fica mecesita ejecutarse con privilegios de superusuario, use el siguiente procedimiento para visualizar la salida del programa en el servidor X del usuario. Con objeto de evitar posibles riesgos de seguridad nunca intente iniciar un servidor X directamente desde la cuenta de superusuario.

Inicie el servidor X como usuario normal y abra una consola xterm. Then:

     $ XAUTHORITY=$HOME/.Xauthority
     $ export XAUTHORITY
     $ su root
     Password:*****
     # printtool &

Cuando utilice este truco para hacer su a un usuario normal, aseg�rese que el archivo ~/.Xauthority tenga permiso de lectura para el grupo al que pertenece dicho usuario.

Para automatizar esta secuencia de comandos, cree un archivo ~/.xsession desde la cuenta del usuario, que contenga las siguientes l�neas:

     # Esto permite arrancar X cuando hago su para ser superusuario.
     if [ -z "$XAUTHORITY" ]; then
             XAUTHORITY=$HOME/.Xauthority
             export XAUTHORITY
     fi
     unset XSTARTUP
     # Si desea un administrador de sesiones/ventanas particular descomente
     # lo siguiente y ed�telo seg�n sus necesidades.
     # XSTARTUP=/usr/bin/blackbox
     # Esto inicia el administrador de sesiones/ventanas de X
     if [ -z "$XSTARTUP" ]; then
       if [ -x /usr/bin/x-session-manager ]; then
         XSTARTUP=x-session-manager
       elif [ -x /usr/bin/x-window-manager ]; then
         XSTARTUP=x-window-manager
       elif [ -x /usr/bin/x-terminal-emulator ]; then
         XSTARTUP=x-terminal-emulator
       fi
     fi
     # ejecuta el administrador de sesiones/ventanas seleccionado
     exec $XSTARTUP

A continuaci�n ejecute su (no su -) en una ventana xterm de usuario. A partir de ahora, es posible ejecutar aplicaciones gr�ficas con privilegios de superusuario en una pantalla X de superusuario. Este truco funciona siempre y cuando se ejecute la /etc/X11/Xsession predeterminada. Si un usuario personaliza ~/.xinit o ~/.xsession, la variable XAUTHORITY mencionada anteriormente necesita ser inicializada de manera similar en estos scripts.

Otro m�todo, consiste en usar sudo para automatizar la secuencia de comandos:

     $ sudo xterm
     ... o
     $ sudo -H -s

En este casp /root/.bashrc debe contener:

     if [ $SUDO_USER ]; then
         sudo -H -u $SUDO_USER xauth extract - $DISPLAY | xauth merge -
     fi

Esto funciona correctamente incluso si el directorio personal del usuario se encuentra en una partici�n NFS, ya que el superusuario no lee el archivo .Xauthority.

Existen tambi�n diversos paquetes espec�ficos para este fin: kdesu, gksu, gksudo, gnome-sudo y xsu. Se pueden usar otro m�todos para alcanzar resultados similares: crear un enlace simb�lico del /root/.Xauthority al correspondiente al usuario; utilizar el script sux; o incluir "xauth merge ~USER_RUNNING_X/.Xauthority" en el script de inicializaci�n del root.

V�ase m�s en la lista de correos debian-devel.


Debian GNU/Linux Reference Guide
Prev Home Next

 
 
  Published under the terms of the GNU General Public License Design by Interspire