Wie lege ich einen Launcher als vertrauenswürdig fest?

Wie lege ich einen Launcher als vertrauenswürdig fest?

Ich habe ein Desktopsymbol, das nicht funktioniert. Wenn ich versuche, es zu verwenden, erhalte ich die Fehlermeldung

Nicht vertrauenswürdige Desktopdatei Diese Desktopdatei ist nicht vertrauenswürdig und kann nicht gestartet werden. Um den Start zu aktivieren, klicken Sie mit der rechten Maustaste und gehen Sie dann wie folgt vor: Aktivieren Sie „Starten zulassen“

Ich erhalte den Menüpunkt „Start zulassen“ nicht, wenn:

  1. Ich klicke mit der rechten Maustaste auf das Symbol auf dem Desktop
  2. Ich klicke mit der rechten Maustaste auf die Datei in Dolphin
  3. Ich klicke mit der rechten Maustaste auf diese Datei im „Dateimanager“

Also habe ich versucht, es über die Befehlszeile zu tun, indem ich die Anweisungen auf dieser Webseite befolgt habe:Wie markiere ich eine .desktop-Datei von der Befehlszeile unter Ubuntu 18.04 als vertrauenswürdig?. Da ich viele solcher nicht vertrauenswürdigen Launcher-Links habe, habe ich diese Befehlsfolge verwendet und diese Antwort erhalten:

$ chmod u+xrw /home/stephen/Desktop/*.desktop
$ chmod g+xrw /home/stephen/Desktop/*.desktop
$ chmod o+xr /home/stephen/Desktop/*.desktop
$ gio set "/home/stephen/Desktop/*.desktop" "metadata::trusted" yes
gio: Setting attribute metadata::trusted not supported

Ich habe den gleichen Fehler erhalten, als ich Gio anstelle des Platzhalterzeichens * eine bestimmte Datei gegeben habe, und auch, als ich versucht habe, Gio als Root auszuführen.

Welches ist das richtige Attribut für den Gio-Befehl? In welchen Dateibrowsern sollte der Menüpunkt „Start zulassen“ erscheinen?

Mein Betriebssystem ist Ubuntu 22.04 jammy

Hier ist eine der .desktop-Dateien, mit denen ich dieses Problem habe:

[Desktop Entry]
Comment=Powerful yet simple to use screenshot software.
Comment=Powerful yet simple to use screenshot software.
Comment[en_US]=Powerful yet simple to use screenshot software.
Exec=flameshot launcher
GenericName=
GenericName=
GenericName[en_US]=
Icon=flameshot
MimeType=
Name=Flameshot (Snappy Edition)
Name=Flameshot (Snappy Edition)
Path=
StartupNotify=false
Terminal=false
TerminalOptions=
Type=Application
Version=1.0
X-DBUS-ServiceName=
X-DBUS-StartupType=
X-KDE-SubstituteUID=false
X-KDE-Username=

Ich bin den Empfehlungen von ubfan1 aus den Kommentaren vom 6. September 2022 gefolgt. Die Ergebnisse:

stephen@stephen:~$ desktop-file-validate /home/stephen/Desktop/Flameshot.desktop
/home/stephen/Desktop/Flameshot.desktop: error: file contains multiple keys named "Comment" in group "Desktop Entry"
/home/stephen/Desktop/Flameshot.desktop: error: file contains multiple keys named "GenericName" in group "Desktop Entry"
/home/stephen/Desktop/Flameshot.desktop: error: file contains multiple keys named "Name" in group "Desktop Entry"
/home/stephen/Desktop/Flameshot.desktop: warning: value "" for key "Path" in group "Desktop Entry" does not look like an absolute path
/home/stephen/Desktop/Flameshot.desktop: warning: key "TerminalOptions" in group "Desktop Entry" is deprecated

Auf welchen Wert sollte der Pfadschlüssel eingestellt werden? Da ich das nicht wusste und es sich nur um eine Warnung handelte, habe ich den Rest der Datei entsprechend bearbeitet. Dies ist das Ergebnis dieser Änderungen:

[Desktop Entry]
Comment=Powerful yet simple to use screenshot software.
Comment[en_US]=Powerful yet simple to use screenshot software.
Exec=flameshot launcher
GenericName=
GenericName[en_US]=
Icon=flameshot
MimeType=
Name=Flameshot (Snappy Edition)
Path=
StartupNotify=false
Terminal=false
Type=Application
Version=1.0
X-DBUS-ServiceName=
X-DBUS-StartupType=
X-Desktop-File-Install-Version=0.26
X-KDE-SubstituteUID=false
X-KDE-Username=

Jetzt erhalte ich diese Ergebnisse:

stephen@stephen:~$ desktop-file-validate /home/stephen/Desktop/Flameshot.desktop
/home/stephen/Desktop/Flameshot.desktop: warning: value "" for key "Path" in group "Desktop Entry" does not look like an absolute path
stephen@stephen:~$ sudo desktop-file-install /home/stephen/Desktop/Flameshot.desktop
/usr/share/applications/Flameshot.desktop: warning: value "" for key "Path" in group "Desktop Entry" does not look like an absolute path
stephen@stephen:~$ sudo desktop-file-edit /home/stephen/Desktop/Flameshot.desktop
/home/stephen/Desktop/Flameshot.desktop: warning: value "" for key "Path" in group "Desktop Entry" does not look like an absolute path

Der Menüpunkt „Start zulassen“ wird jedoch immer noch nicht angezeigt.

Dann stellte ich fest, dass Flameshot.desktop nicht mehr ausführbar ist. Also habe ich Dolphin verwendet, um es ausführbar zu machen. Danach stellte ich fest, dass der Inhalt von Flameshot.desktop durch das Ausführbarmachen wieder auf den oben genannten Ausgangszustand zurückgesetzt wurde. Die doppelten Schlüsseleinträge wurden wieder eingeführt und ich landete genau dort, wo ich angefangen hatte.

Vielleicht war die Pfadschlüsselwarnung wichtiger als ich angenommen hatte. Bevor ich es noch einmal versuche, muss ich wissen, worauf ich sie einstellen muss. Für alle anderen Vorschläge wäre ich ebenfalls sehr dankbar.

Ich habe eine Tabelle erstellt, um die Ergebnisse des Befehls „strace gio set“ im Testkonto zu vergleichen. Dabei handelt es sich um ein neues temporäres Konto, das zu Testzwecken erstellt wurde und in dem ich funktionierende Desktopsymbole erstellen kann. Außerdem habe ich eine Tabelle erstellt, um die Ergebnisse des Befehls „strace gio set“ im Testkonto zu vergleichen. Dabei handelt es sich um ein neues temporäres Konto, das zu Testzwecken erstellt wurde und in dem ich funktionierende Desktopsymbole erstellen kann. Die Tabelle kann hier heruntergeladen werden:

https://www.mediafire.com/file/xz4dy7280wfx3u8/giosetenablecomparison.ods/file

Spalte A ist das Ergebnis des Befehls im Hauptkonto und Spalte B ist das Ergebnis im Testkonto. Die Ergebnisse sind bis zur Zeile 59 weitgehend vergleichbar. Im Testkonto zeigt dies "close(3)" für das Hauptkonto und "close(3) = 0" im Testkonto.

Im Stephen-Konto endet die Ausgabe in Zeile 59. Im Testkonto geht die Ausgabe bis Zeile 516.

Ich weiß nicht, was diese ganze Ausgabe bedeutet. Es scheint mir, dass ein Fehler den Prozess im Stephen-Konto vorzeitig beendet. Jemand hier kann sehen, was schiefgelaufen ist, und eine Lösung vorschlagen.

Der alte Computer, von dem ich migriert bin, hat Pop!_OS 21.04. Der neue Computer, auf den ich migriert bin und mit dem ich dieses Symbolproblem habe, hat Ubuntu 22.04. Als ich die Migration durchführte, kopierte ich alle Binärdateien in /opt und alle Dateien in /home. Indem ich alle Dateien in /opt kopierte, hoffte ich, mir die Zeit und Mühe zu sparen, alle Softwareinstallationen erneut durchzuführen. Ich weiß, dass es anderswo Binärdateien gibt, beispielsweise in /user/bin und /snap. Ich habe diese nicht kopiert und wollte sie mithilfe von Installationsdateien auf dem neuen Computer installieren. Ich wusste, dass es im Verzeichnis /Desktop defekte Links geben würde, bis die Apps, mit denen diese verknüpft sind, installiert sind. Ich denke jetzt, dass dies möglicherweise ein Fehler war und dass alles mithilfe von Installationsdateien auf dem neuen Computer installiert werden sollte.

Das Ergebnis der vonStahltreiberin seinem Kommentar:

stephen@stephen:~$ echo $DBUS_SESSION_BUS_ADDRESS
unix:path=/run/user/1000/bus
stephen@stephen:~$ id -u
1000

Antwort1

gio set "/home/stephen/Desktop/*.desktop" "metadata::trusted" yes

ist nicht korrekt. 3 Probleme:

  • Sie müssen verwenden dbus-launch. Wenn dbus-launches nicht installiert ist, gehen Sie zuerst wie folgt vor:

    sudo apt install dbus-x11
    
  • Sie können keine Platzhalter verwenden.

  • Ab Ubuntu 20.04 lautet es „true“ und nicht „yes“.

Der Befehl:

dbus-launch gio set /home/stephen/Desktop/{name}.desktop "metadata::trusted" true

(wobei {name} durch den tatsächlichen Namen ersetzt werden muss)

Antwort2

Der Menüpunkt „Start zulassen“ erschien nicht, da das Verzeichnis „~/Desktop“ für andere beschreibbar war. Um das herauszufinden, musste ich den GNU-Quellcode finden und analysieren. Der Schlüssel dazu war Zeile 200 in der Datei:

/usr/share/gnome-shell/extensions/ding(at)rastersoft.com/fileItemMenu.js".

(ersetzen Sie @ durch (at))

Das ist:

if (fileItem.isValidDesktopFile && !this._desktopManager.writableByOthers && !fileItem.writableByOthers && (selectedItemsNum == 1 )) {

Da das Verzeichnis „~/Desktop“ für andere beschreibbar war, war der Begriff „!this._desktopManager.writableByOthers“ falsch und daher wurde der Menüpunkt nicht angezeigt.

Die Anforderung, dass das Verzeichnis „~/Desktop“ nicht von anderen beschreibbar sein darf, ist nicht dokumentiert, muss es aber sein. Es hätte mir viel Zeit gespart, wenn es so gewesen wäre.

verwandte Informationen