Thunderbird als anderer X-User

Du hast Probleme mit Deinem eMail-Programm, Webbrowser oder Textprogramm? Dein Lieblingsprogramm streikt?
Antworten
liNixchecker
Beiträge: 18
Registriert: 21.04.2013 13:44:50
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Köln

Thunderbird als anderer X-User

Beitrag von liNixchecker » 21.04.2017 14:39:46

Hi,
ich hatte mir so schön einen User eingerichtet, mit dem ich Iceweasel und Icedove öffnen konnte (nach folgender Anleitung).
Der Umstieg auf Firefox lief noch ohne Probleme, doch Thunderbird weigert sich als Internetuser zu starten. Unter dem normalen Desktop-User startet Thunderbird.
Als Fehlermeldung kommt lediglich
  • Error: cannot open display: :0.0
Im Wrapper-Script habe ich alles ausprobiert:
  • /usr/bin/icedove statt /usr/bin/thunderbird: selbes Ergebniss
    anderes Programm (zB.: /usr/bin/firefox, /usr/bin/vlc, ...): startet und funktioniert.
    Nur anderes Programm, sonst selbes Script, keine Rechtschreibfehler...
von der Konsole (als Desktop-User, nicht als Internetuser):
  • /usr/bin/thunderbird: startet
    thunderbird (aka /usr/local/...): Wieder der Fehler
Den ~/.icedove-Ordner hab ich schon in .thunderbird umbenannt – keine Verbesserung, hat aber auch nix mit dem Display zu tun...
Hat irgendwer ähnliche Probleme? Oder sogar schon eine Lösung?
Ich bin hier langsam echt am verzweifeln....

Ach ja: Jessie (+Backports) mit 3.16 amd64 Kernel

Benutzeravatar
MartinV
Beiträge: 369
Registriert: 31.07.2015 19:38:52

Re: Thunderbird als anderer X-User

Beitrag von MartinV » 21.04.2017 16:32:38

Error: cannot open display: :0.0
Das ist eine typische Fehlermeldung für fehlende Authorisierung, um auf X zugreifen zu dürfen.
Im wesentlichen gibt es zwei Wege, um Zugriff auf den X server zu erlauben. Der eine ist mit Cookies, gespeichert in XAUTHORITY. Das Skript scheint das zu versuchen, aber an irgendetwas zu scheitern.

Ich zitiere mal aus Deinem Link das Wrapper-Skript:

Code: Alles auswählen

#!/usr/bin/env bash
# 1. Parameter = DISPLAY
# 2. Parameter = MIT COOKIE
# 3. Parameter = Anwendungen
# ab 4. = Parameter für die Anwendungen
DISPLAY=$1
COOKIE=$2
APP=$3
# Hack, weil das leider nicht korrekt gesetzt wird
export XAUTHORITY=$HOME/.Xauthority
/usr/bin/xauth add $DISPLAY MIT-MAGIC-COOKIE-1 $COOKIE
export DISPLAY
shift 3
$APP "$@"
Der "gefakte" Programmaufruf in /usr/local/bin:
(EDIT: Der Codeblock macht bei mir einen Zeilenumbruch in der sudo-Zeile !!1! Was ist das für ein Unfug?ß?)

Code: Alles auswählen

#!/bin/sh
umask 077
sudo -H -u internetuser /usr/local/bin/start $DISPLAY $(xauth list $DISPLAY |awk '{print $3}') /usr/bin/iceweasel "$@"
Mit dem Extrahieren des Cookies mittels xauth scheint etwas falsch zu laufen. Was zeigt bei Dir

Code: Alles auswählen

echo $XAUTHORITY
xauth list
xauth list $DISPLAY |awk '{print $3}'
Möglicherweise hast Du mehrere Cookies für :0.0. In dem Fall könnte das Abhilfe schaffen, damit nur ein Cookie übergeben wird:

Code: Alles auswählen

xauth list $DISPLAY |awk '{print $3}' | head -n1
Eine Alternative (die ich nicht mag) kommt ohne Cookies aus. Der Fake-Aufruf kann dem Benutzer internetuser Zugriff auf X mittels xhost erlauben (vor dem sudo-Aufruf):

Code: Alles auswählen

xhost +SI:localuser:internetuser
Die Vernunft kann einem schon leidtun. Sie verliert eigentlich immer.

liNixchecker
Beiträge: 18
Registriert: 21.04.2013 13:44:50
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Köln

Re: Thunderbird als anderer X-User

Beitrag von liNixchecker » 22.04.2017 12:23:08

Danke für die Antwort.

xauth list zeigt nur einen Cookie an. Und $XAUTHORITY ist auch auf den Desktopuser gesetzt.
Die Cookies von desktopuser und internetuser (/home/~/.Xauthority) sind auch identisch, darum weis ich ja nicht mehr weiter.

Die xhost add Methode funktioniert :THX: , nur muss das nach jedem Neustart wiederholt werden (oder ins script geschrieben... ).
Kannst Du mir erklären, warum die die nicht magst?

liNixchecker
Beiträge: 18
Registriert: 21.04.2013 13:44:50
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Köln

Re: Thunderbird als anderer X-User

Beitrag von liNixchecker » 22.04.2017 16:10:17

So, hab jetzt mal ein bisschen rumgespielt...
Wie bereits geschrieben, funktioniert die Autorisierung über xhost.
Aber seltsam und immer seltsamer:
Jetzt hat aber mein altes Icedove-Profil bei einem Konto die Nachrichten in einem Ordner ausserhalb des /home Filesystems (was bei mir ein eigenes ist) gespeichert. Auf dieses kann Thunderbird plötzlich nicht mehr zugreifen, obwohl die Rechte entsprechend gesetzt sind. Auch ein (als Test) erstellen eines neuen Ordners in einem anderen Filesystem ist nicht möglich – weder als internetuser noch als normaler desktopuser (wenn ich Thunderbird mit dem (neu angelegten) Profil öffne).

Es scheint so, als würde Thunderbird unter einem anderen User laufen. Obwohl keiner hinzugekommen ist und ps -ejfH auch nichts anzeigt, weder ein anderer User, noch ein neuer Prozess.
Irgendwer `ne Idee was das sein könnte?

Antworten