[linux-l] Programm (Firefox) als anderer Benutzer ausführen
Lutz Willek
lutz.willek at belug.de
Do Mai 24 09:37:32 CEST 2012
Am 22.05.2012 03:23, schrieb Norman Steinbach:
> Peter Ross wrote:
>> "xauth" vor dem Nutzerwechsel löst dieses Problem.
> Danke! Dürfte ich noch etwas genauer nach der Syntax fragen?
Hallo Norman,
beim Starten des X-Servers wird ein Magic Cookie erzeugt und dem
X-Server mitgeteilt. Nur wer den gleichen "Magischen Keks" hat, der darf
auch auf den X-Server zugreifen.
Normalerweise werden diese Kekse automatisch beim Login eines Benutzers
zugewiesen und in der Datei .Xauthority oder .xauth<RANDOM> im
Heimatverzeichnis des angemeldeten Benutzers gespeichert. Bei Dir ist
das nicht so, wenn Du den Benutzer wechselst.
Mit dem Programm xauth kannst Du deinen magic cookie von Hand verwalten.
Zuerst ein Beispiel, so ähnlich dürfte es bei Dir ausgesehen haben, ohne
"Automatik":
> [lutz at localhost ~]$ su - testuser
> Passwort:
> [testuser at localhost ~]$ firefox
> No protocol specified
> No protocol specified
> Error: cannot open display: :0.0
> [testuser at localhost ~]$
Ergebnis: Der Firefox startet nicht, schon blöd.
Wenn Du nun mit xauth Deinen magic cookie exportierst und als anderer
Nutzer wieder importierst funktioniert der Zugriff, beispielsweise so
wie nun gezeigt:
> [lutz at localhost ~]$ xauth extract /tmp/xschluessel $DISPLAY
> [lutz at localhost ~]$ chmod o+r /tmp/xschluessel
> [lutz at localhost ~]$ su - testuser
> Passwort:
> [testuser at localhost ~]$ xauth merge /tmp/xschluessel
> xauth: creating new authority file /home/testuser/.xauthF2CfzJ
> [testuser at localhost ~]$ firefox
> [testuser at localhost ~]$
Soweit zur manuellen Methode, die immer funktioniert.
Die meisten Distributionen handhaben das ganze über das PAM-Modul
pam_xauth vollautomatisch, so wie auch bei mir hier. (Scientific Linux
6.2). Das gleiche Beispiel mit dem Firefox sieht dann so aus:
> [lutz at localhost ~]$ xauth list
> localhost.localdomain/unix:0 MIT-MAGIC-COOKIE-1 7b6db2fc31819f7231c2a35f364c711f
> [lutz at localhost ~]$ su - testuser
> Passwort:
> [testuser at localhost ~]$ xauth list
> localhost.localdomain/unix:0 MIT-MAGIC-COOKIE-1 7b6db2fc31819f7231c2a35f364c711f
> [testuser at localhost ~]$ firefox
> [testuser at localhost ~]$
Die "Kekse" wandern also automatisch mit den Nutzern mit, wie der Befehl
"xauth list" zeigt. Ich muss mich also *gar* *nicht* kümmern.
Das funktioniert deshalb, weil pam wie folgt eingestellt ist: (hier eine
Zeile aus /etc/pam.d/su)
> session optional pam_xauth.so
Du solltest diese Automatik auch bei Dir übernehmen bzw. einstellen
können. Wie das geht verrät Dir, wie immer, die Manpage:
http://linux.die.net/man/8/pam.d
http://linux.die.net/man/5/pam.conf
http://linux.die.net/man/8/pam_xauth
Hoffe das hilft Dir.
Freundliche Grüße / Best Regards
Lutz Willek
Mehr Informationen über die Mailingliste linux-l