[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