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 Administratorrechte unter X

Wenn ein graphisches Programm mit root-Rechten gestartet werden muss, m�ssen einige Vorkehrungen getroffen werden. Keinesfalls sollte man als Superuser einen X-Server starten, wegen der betr�chtlichen Sicherheitsrisiken.

Man startet den X-Server als gew�hnlicher Benutzer und �ffnet ein xterm Fenster. Dann folgen:

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

Wenn man diesen Trick verwendet und sich mit su als ein Nicht-root-Benutzer anmeldet, muss darauf geachtet werden, dass die Datei ~/.Xauthority f�r diesen speziellen Benutzer Gruppen-lesbar ist.

Um diesen Vorgang zu automatisieren, kann der betreffende Benutzer eine Datei ~/.xsession anlegen, die folgende Zeilen enth�lt.

     # So funktioniert X auch wenn su benutzt wurde.
     if [ -z "$XAUTHORITY" ]; then
             XAUTHORITY=$HOME/.Xauthority
             export XAUTHORITY
     fi
     unset XSTARTUP
     # Wenn ein besonderer Window/Sitzungsmanager gew�nscht wird
     # kann der hier eingestellt werden.
     #XSTARTUP=/usr/bin/blackbox
     # This start x-window/session-manager program
     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
     # Ausf�hrung des Window/Sitzungsmanagers.
     exec $XSTARTUP

Nun kann su (nicht su -) in einem xterm Fenster vom Benutzer gestartet werden. Auch graphische Programme, die von der Shell mit Superuser-Rechten gestartet wurden, k�nnen nun angezeigt werden. Dieser Trick funktioniert nur solange, wie die �bliche /etc/X11/Xsession ausgef�hrt wird. Wenn der Benutzer eine eigene Datei ~/.xinit oder ~/.xsession Datei anlegt, muss die oben erw�hnte Umgebungsvariable XAUTHORITY an diese Skripte angepasst werden.

Alternativ, kann das Paket sudo verwendet werden, um diese Sequenz abzuarbeiten.

     $ sudo xterm
     ... oder
     $ sudo -H -s

Hier muss die /root/.bashrc folgendes enthalten:

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

Dies funktioniert auch, wenn das Home-Verzeichnis des Benutzers mit NFS gemountet wird, da root die Datei .Xauthority nicht lesen muss.

There are also several specialized packages for this purpose: kdesu, gksu, gksudo, gnome-sudo, and xsu. Some other methods can be used to achieve similar results: creating a symlink from /root/.Xauthority to the user's corresponding one; use of the script sux; or putting "xauth merge ~USER_RUNNING_X/.Xauthority" in the root initialization script.

See more on the debian-devel mailing list.


Debian GNU/Linux Reference Guide
Prev Home Next

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