Vertrauen Sie Desktop-Symbolen, ohne sie manuell in Ubuntu 18.04 Gnome 3 anzuklicken

Aug 29 2018

Nachdem Sie eine .desktop-Datei an den Speicherort "Desktop" verschoben haben ~/Desktop, wird das Symbol auf dem Desktop angezeigt. Für den ersten Lauf müssen Sie der Anwendung vertrauen. Gibt es eine Möglichkeit, ihm direkt zu vertrauen, ohne darauf zu klicken? chmod +x *.Desktopist bereits fertig, um die Datei ausführbar zu machen

Antworten

12 Sander Aug 29 2018 at 13:40

Desktop-Dateien können über die Befehlszeile als vertrauenswürdig eingestuft werden:

gio set Your_desktop_file.desktop "metadata::trusted" yes

und der Vertrauenszustand kann erhalten werden durch:

gio info Your_desktop_file.desktop | grep "metadata::trusted"

HINWEIS:

  • Sie müssen diesen Befehl mit demselben Benutzer wie der Eigentümer der Desktop-Dateien ausführen
  • Es funktioniert nur, wenn Sie den Befehl in der Gnome-Shell ausführen (nicht über SSH).
  • Um dies bei der Anmeldung automatisch zu tun, müssen Sie ein Anmeldeskript erstellen, das ein Skript ausführt, da dieses nur ausgeführt wird, wenn Gnome gestartet wird. Beispielsweise können Sie eine .desktop-Datei erstellen, in der ein ~/.config/autostart/Shell-Skript einschließlich der gio-Befehle ausgeführt wird
  • Stellen Sie sicher, dass nautilus-desktopes wirklich gestartet ist. Sie können eine while-Schleife mit einem sleep 1Till-Nautilus-Desktop-Lauf erstellen
  • Symbole werden nicht automatisch aktualisiert. Sie können dies erreichen, indem Sie F5 auf dem Desktop drücken oder nautilus in Ihrem Autostart-Skript neu starten. killall nautilus && nautilus-desktop &(Das letzte & Zeichen soll sicherstellen, dass der Rest Ihres Codes ausgeführt wird. Andernfalls wird das Skript dort angehalten, bis Sie den nautilus-desktopProzess erneut schließen.)
2 Janos Nov 27 2018 at 13:48

Inspiriert von der großartigen Antwort von @Sander bin ich mit diesem Ansatz in Ubuntu 18.04 sehr zufrieden. Ich verwende dies in einem automatisierten VM-Erstellungssetup, in dem zuerst die Desktopsymbole platziert und dann diese Skripte vorbereitet werden. Sie werden erst beim ersten Start ausgeführt.

Ich erstelle eine Desktop-Datei ~/.config/autostart/desktop-truster.desktopmit folgendem Inhalt:

[Desktop Entry]
Name=Desktop-Truster
Comment=Autostarter to trust all desktop files
Exec=~/.config/autostart/desktop-truster.sh
Type=Application

Daneben ein Skript ~/.config/autostart/desktop-truster.sh, das von der Autostart-Desktop-Datei aufgerufen wird:

#!/bin/bash
# Wait for nautilus-desktop
while ! pgrep -f 'nautilus-desktop' > /dev/null; do
  sleep 1
done
# Trust all desktop files
for i in ~/Desktop/*.desktop; do
  [ -f "${i}" ] || break
  gio set "${i}" "metadata::trusted" yes
done
# Restart nautilus, so that the changes take effect (otherwise we would have to press F5)
killall nautilus-desktop && nautilus-desktop &
# Remove X from this script, so that it won't be executed next time
chmod -x ${0}
nobodyspecial Aug 29 2018 at 11:44

Sie müssen die .desktop-Dateien ausführbar machen (vertrauenswürdig). Gehen Sie dazu in einem Terminal zu ~ / Desktop und geben Sie den folgenden Befehl ein

chmod u+x foo*

Verwenden Sie natürlich einen Platzhalter, der Ihren Anforderungen entspricht, und aktualisieren Sie dann Ihren Desktop. Das wäre mehr Aufwand als der Vertrauensmechanismus für einen einzelnen Eintrag, aber sparen Sie Zeit, wenn Sie beispielsweise mehr als n Einträge importieren (wobei n Ihre maximale Unannehmlichkeit ist).

Es gibt Möglichkeiten, das Verzeichnis zu überwachen und dies automatisch mit externen Tools zu tun. Ich würde Ihnen jedoch raten, die Sicherheitsauswirkungen einer solchen Aktion ernsthaft in Betracht zu ziehen.

Aber es gibt keine Möglichkeit, dies in Ihrem DE zu tun, die mir bekannt ist.

HINWEIS: Dies funktioniert unter KDE, aber anscheinend nicht unter Gnome.