Home · Kontakt · Impressum
contents index previous up next
Next: 19.5.3 Zugriff über SSH-X11-Weiterleitung Up: 19.5 X-Window im Netzwerk Previous: 19.5.1 Zugriffsschutz über xhost

Unterabschnitte



19.5.2 Zugriffsschutz über Magic Cookies und xauth

Einen Zugriffsschutz auf Benutzerebene wird durch die Magischen Kekse (engl. magic cookies) ermöglicht. Beim Starten des X-Servers wird ein Magic Cookie erzeugt. Dieser wird dem X-Server mitgeteilt und gleichzeitig in der Datei .Xauthority im Heimatverzeichnis des angemeldeten Benutzers gespeichert. Diese Datei ist natürlich nur für den Benutzer selber lesbar. So könnte eine solche Datei aussehen.

ole@enterprise:~> ls -l .Xauthority
-rw-------    1 ole      users         375 2004-06-21 20:45 .Xauthority
ole@enterprise:~> od -a .Xauthority
0000000 nul nul nul eot  nl nul nul soh nul soh   0 nul dc2   M   I   T
0000020   -   M   A   G   I   C   -   C   O   O   K   I   E   -   1 nul
0000040 dle etx   <   T   0   E   m   '   ^   g  bs   u   [   Q stx   8
0000060   ? soh nul nul  nl   e   n   t   e   r   p   r   i   s   e nul
0000100 soh   0 nul dc2   M   I   T   -   M   A   G   I   C   -   C   O
0000120   O   K   I   E   -   1 nul dle etx   <   T   0   E   m   '   ^
0000140   g  bs   u   [   Q stx   8   ? soh nul nul dle   e   n   t   e
0000160   r   p   r   i   s   e   .   l   o   c   a   l nul soh   1 nul
0000200 dc2   M   I   T   -   M   A   G   I   C   -   C   O   O   K   I
0000220   E   -   1 nul dle   Q etx   N enq   E dc2   L   C   N   _   &
0000240   Z  fs   h   n del nul nul nul eot  nl nul nul soh nul soh   0
0000260 nul dc3   X   D   M   -   A   U   T   H   O   R   I   Z   A   T
0000300   I   O   N   -   1 nul dle   ,   O sub   f   d   8   P   I nul
0000320   Z   d   B   Q   ~ ack  ht soh nul nul  nl   e   n   t   e   r
0000340   p   r   i   s   e nul soh   0 nul dc3   X   D   M   -   A   U
0000360   T   H   O   R   I   Z   A   T   I   O   N   -   1 nul dle   ,
0000400   O sub   f   d   8   P   I nul   Z   d   B   Q   ~ ack  ht
0000417

19.5.2.1 Beispiele

So können Sie vorgehen, um nur root den Zugriff auf Ihren X-Server zu gewähren. Erst einmal überprüfen wir, ob nicht der lokale Rechner bereits Zugriffsrechte auf den X-Server besitzt.

ole@enterprise:~> xhost
access control enabled, only authorized clients can connect

Dann extrahieren wir den passenden Schlüssel für den aktiven X-Serverbildschirm und speichern ihn in die Datei Xschluessel.

ole@enterprise:~> xauth extract Xschluessel $DISPLAY
ole@enterprise:~> ls -l Xschluessel
-rw-------    1 ole      users         111 2004-06-21 23:54 Xschluessel

Wir wechseln unsere Identität zu root.

ole@enterprise:~> su -l
Password:

Dann fügen wir den in die Datei Xschluessel extrahierten Schlüssel zur .Xauthority von root hinzu. Da bis jetzt noch keine solche Datei vorhanden war, wird einfach eine neue Datei erstellt.

enterprise:~ # xauth merge /home/ole/Xschluessel
xauth:  creating new authority file /root/.Xauthority

Jetzt nur noch die Umgebungsvariable DISPLAY setzen und schon klappt es mit dem X-Client.

enterprise:~ # export DISPLAY=:0.0
enterprise:~ # nedit

Für den Benutzer root geht es sogar noch einfacher. Nach dem Einloggen muß nur die Variable XAUTHORITY auf die passende .Xauthority gesetzt werden. Und schon klappt es wieder mal mit dem X-Client.

ole@enterprise:~> su -l
Password:
enterprise:~ # export XAUTHORITY=/home/ole/.Xauthority
enterprise:~ # nedit

Problematischer wird die Übertragung des Magic Cookies bei entfernten Rechnern. Da normalerweise nicht die IP-Nummer des Hosts beim Magic Cookie gespeichert wird sondern sein Hostname, muß auf dem anderen Rechner auch eine passende Namensauflösung laufen.

dozent@linux37:~> echo $DISPLAY
:0.0
dozent@linux37:~> xauth list
linux37.local:0  MIT-MAGIC-COOKIE-1  aad2f729bd7ac5cd4c29a91a4867578a
linux37/unix:0  MIT-MAGIC-COOKIE-1  aad2f729bd7ac5cd4c29a91a4867578a
linux37.local:0  XDM-AUTHORIZATION-1  b4396abf05bbad06002c298ce3d8d635
linux37/unix:0  XDM-AUTHORIZATION-1  b4396abf05bbad06002c298ce3d8d635
dozent@linux37:~> xauth extract - linux37.local:0 | \
> ssh -l walter linux36 /usr/X11R6/bin/xauth merge -
Password:

Wichtig ist hier nicht einfach die Variable DISPLAY zu benutzen. In diesem Fall würde sich der Eintrag nämlich auf linux37/unix:0 beziehen, der aber den Transport über einen Unix-Socket veranlaßt. Einen solchen Eintrag auf einen anderen Rechner zu übertragen bringt nicht viel.


contents index previous up next
Next: 19.5.3 Zugriff über SSH-X11-Weiterleitung Up: 19.5 X-Window im Netzwerk Previous: 19.5.1 Zugriffsschutz über xhost
  © 2004 by IT-Dozent Ole Vanhoefer · Zum Seitenanfang