(gelöst) pkexec - qt.qpa.screen: QXcbConnection: Could not connect to display Could not connect to any X display.

Du hast Probleme mit Deinem eMail-Programm, Webbrowser oder Textprogramm? Dein Lieblingsprogramm streikt?
Antworten
Benutzeravatar
SirArthur
Beiträge: 278
Registriert: 11.07.2017 17:39:12

(gelöst) pkexec - qt.qpa.screen: QXcbConnection: Could not connect to display Could not connect to any X display.

Beitrag von SirArthur » 11.01.2020 13:43:10

Hallo Debianer,

ich versuche jetzt schon länger, ein Programm mit root Rechten aus dem Mate Menü zu starten, bekomme aber oben genannte Fehlermeldung.
Seit Buster gibt es ja kein gksudo mehr und ich werde aus pkexec nicht ganz schlau.
Es handelt sich um USBGuard, der Befehl ist usbguard-applet-qt.

Laut 'man pkexec' muss ich ein File in /usr/share/polkit-1/actions erstellen, aber mir ist aus dem Manual nicht ganz ersichtlich, wie dieses File heißen soll, weshalb ich glaube, daß das nicht funktionert. Ich habe schon ein paar Namen auf gut Glück getestet, aber hatte keinen Erfolg.
Ich finde beim ducken auch immer nur das selbe "Frobnicate" Beispiel aus der man page.

Hat jemand eine Idee?
Zuletzt geändert von SirArthur am 11.01.2020 15:02:33, insgesamt 1-mal geändert.

schwedenmann
Beiträge: 5528
Registriert: 30.12.2004 15:31:07
Wohnort: Wegberg

Re: pkexec - qt.qpa.screen: QXcbConnection: Could not connect to display Could not connect to any X display.

Beitrag von schwedenmann » 11.01.2020 13:55:18

Hallo


warum benutzt du dafür überhaupt eine gui, das geht auch seht gut per cli.

mfg
schwedenmann

KP97
Beiträge: 3440
Registriert: 01.02.2013 15:07:36

Re: pkexec - qt.qpa.screen: QXcbConnection: Could not connect to display Could not connect to any X display.

Beitrag von KP97 » 11.01.2020 13:55:55

Im Repo ist nur ein Paket usbguard, das ist aber nicht Deins, oder?
Das Repopaket erstellt bei der Installation automatisch auch eine Action in /usr/share/polkit-1.
Das kannst Du ja als Muster nehmen. Vielleicht auch nur das Paket herunterladen, entpacken und nur die XML-Datei dorthin kopieren,
evtl. reicht das schon.

willy4711

Re: pkexec - qt.qpa.screen: QXcbConnection: Could not connect to display Could not connect to any X display.

Beitrag von willy4711 » 11.01.2020 14:06:22

Wahrscheinliche Lösung wie Immer: Ganz unten :facepalm: Trifft nur für KDE zu :facepalm:
Ich mache das so:
1) Policy kurz und knackig anlegen z.B. Für Mouspad: :

Code: Alles auswählen

 cat /usr/share/polkit-1/actions/org.xfce.mousepad.policy
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE policyconfig PUBLIC
 "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
 "http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
<policyconfig>

 <vendor>Mousepad</vendor>
 <vendor_url>http://xfce.org/</vendor_url>
 <icon_name>accessories-text-editor</icon_name>


 <action id="org.xfce.mousepad">
 
 <description>Run Mousepad as root</description>
 <description xml:lang="de">Mousepad als Systemverwalter ausführen</description>
 <description xml:lang="en_AU">Run Mousepad as root</description>
 <message>Authentication is required to run Mousepad as root.</message>
 <message xml:lang="de">Authentifizierung notwendig, um Mousepad als Systemverwalter auszuführen.</message>
 <message xml:lang="en_AU">Authentication is required to run Mousepad as root.</message>
  <defaults>
 <allow_any>no</allow_any>
 <allow_inactive>auth_admin</allow_inactive>
 <allow_active>auth_admin</allow_active>
 </defaults>
 <annotate key="org.freedesktop.policykit.exec.path">/usr/bin/mousepad</annotate>
 <annotate key="org.freedesktop.policykit.exec.allow_gui">true</annotate>
 </action>

</policyconfig>
mit

Code: Alles auswählen

pkexec mousepad
Kannst du Mousepad nach PW- Abfrage als Root ausführen.

wenn du die Zeile

Code: Alles auswählen

<allow_active>auth_admin</allow_active>
änderst in

Code: Alles auswählen

<allow_active>yes</allow_active>
geht es auch ohne PW- Abfrage

Wenn ich mir die Namensgebung in diesem Verzeichnis ansehe, ist der Name - bis auf die Konventionen -
nicht so entscheidend.NoPaste-Eintrag40956


Edit

Mal hier gelesen ?
https://www.freedesktop.org/software/po ... kit.8.html

Hier ist noch ein Thread dazu:
viewtopic.php?f=29&t=174364

EDIT 2

Analog Dolphin müsstest du also was Ähnliches kreieren (einen Policy wäre dann wahrscheinlich gar nicht nötig):

Code: Alles auswählen

pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY KDE_SESSION_VERSION=5 KDE_FULL_SESSION=true dolphin
Zuletzt geändert von willy4711 am 11.01.2020 14:26:49, insgesamt 2-mal geändert.

Benutzeravatar
SirArthur
Beiträge: 278
Registriert: 11.07.2017 17:39:12

Re: pkexec - qt.qpa.screen: QXcbConnection: Could not connect to display Could not connect to any X display.

Beitrag von SirArthur » 11.01.2020 14:19:14

@schwedenmann

Ich bin grundsätzlich schon ein Freund des Terminals, war aber mit dem GUI in dem Fall um einiges schneller, weshalb ich den dann verwendet habe. Es geht ja meistens nur darum, einen USB Stick freizugeben und das hatte ich dann mit drei Clicks und Passworteingabe erledigt.
Sollte ich den GUI nicht zum Laufen bringen, bin ich allerdings geneigt, mir was mit Dialog und ein paar Hotkeys zusammenzustoppeln :-)

@KP97

Doch, ich habe das Paket aus den Repos. Die org.usbguard.policy ist auch vorhanden, aber da bekomme ich oben genannte Fehlermeldung.
Mich verwirrt, daß da "qt.qpa.screen" steht, das übersteigt meine Kenntnisse leider...

@Willy

Danke :-) Ich habe folgendes zusätzlich in die schon vorhandene org.usbguard.policy eingetragen und jetzt funktioniert alles!

Code: Alles auswählen

<action id="usbguard-applet-qt">

 <description>Run USBGuard</description>
 <description xml:lang="de">USBGuard als Systemverwalter ausführen</description>
 <description xml:lang="el">Εκτέλεση USBGuard ως διαχειριστής</description>
 <description xml:lang="en_AU">Run USBGuard as root</description>
 <message>Authentication is required to run USBGuard as root.</message>
 <message xml:lang="de">Authentifizierung notwendig, um USBGuard als Systemverwalter auszuführen.</message>
 <message xml:lang="en_AU">Authentication is required to run USBGuard as root.</message>
  <defaults>
 <allow_any>no</allow_any>
 <allow_inactive>auth_admin</allow_inactive>
 <allow_active>auth_admin</allow_active>
 </defaults>
 <annotate key="org.freedesktop.policykit.exec.path">/usr/bin/usbguard-applet-qt</annotate>
 <annotate key="org.freedesktop.policykit.exec.allow_gui">true</annotate>
 </action>
Merci viele male, bestes Forum aller Zeiten :mrgreen:
Zuletzt geändert von SirArthur am 12.01.2020 05:30:15, insgesamt 1-mal geändert.

willy4711

Re: pkexec - qt.qpa.screen: QXcbConnection: Could not connect to display Could not connect to any X display.

Beitrag von willy4711 » 11.01.2020 14:24:50

Ahja, jetzt war ich selbst mit meinen Edits auf dem Holzweg. Du hast ja Mate und nicht KDE.
Werde das mal oben wieder streichen.
P.s.
Das griechische hab ich oben schon raus genommen, und der Richtigen Auch. Hatte ich wohl beim Erstellen übersehen.

Antworten