Benötigen Sie eine Klarstellung über die Berechtigungen von .desktop
Dateien. Ich kann sehen, dass alle .desktop
Dateien im /usr/share/applications/
Besitz von root die Berechtigung haben.
-rw-r--r--
Auch examples.desktop
im $HOME
Besitz des Benutzers hat die gleiche Berechtigung. Alle diese laufen richtig.
Wenn ich jedoch eine benutzerdefinierte .desktop
Datei mit derselben Berechtigung erstellen möchte , wird die folgende Fehlermeldung ausgegeben:
Nicht vertrauenswürdiger Anwendungsstarter
Der Anwendungsstarter "myapp.desktop" wurde nicht als vertrauenswürdig markiert. Wenn Sie die Quelle dieser Datei nicht kennen, ist das Starten möglicherweise unsicher.
Durch Hinzufügen der Ausführungsberechtigung kann sie jedoch problemlos ausgeführt werden.
F: Warum
.desktop
benötigen benutzerdefinierte Dateien+x
Berechtigungen zum Ausführen oder wie können einige.desktop
Dateien ohne Ausführungsberechtigung ausgeführt werden? Ist es möglich, eine benutzerdefinierte.desktop
Datei ohne Ausführungsberechtigung auszuführen ?
quelle
Antworten:
Dies geht aus der Sicherheitsrichtlinie von Ubuntu hervor :
Ja, gemäß dieser Richtlinie sollte es möglich sein, eine Desktop-Datei ohne gesetztes ausführbares Bit auszuführen. Gemäß dieser Politik würden Sie nur die Datei bewegen müssen aus den
/home/
und/tmp/
Verzeichnissen und dann können Sie es ohne die ausführbaren Bit gesetzt starten. Dies ist theoretisch / gemäß der Politik.In der Praxis können Sie mit nautilus .desktop-Dateien starten, ohne dass das ausführbare Bit aus den Verzeichnissen XDG_DATA_DIR und aus dem
~/.gnome2/
Verzeichnis gesetzt wurde. Sie können XDG_DATA_DIRS mit demecho $XDG_DATA_DIRS
Befehl überprüfen . Wenn Sie also Ihre .desktop-Datei in einem XDG_DATA_DIR ablegen oder in, können~/.gnome2/
Sie sie von nautilus aus starten, ohne dass das ausführbare Bit gesetzt ist. Zumindest am 12.04 funktioniert es so. Wie dies mit der oben genannten Politik übereinstimmt, weiß ich nicht.Für die
examples.desktop
in der Frage genannten: Diese .desktop-Datei ist eine andere Art von .desktop-Datei. Es ist ein "Link", es will nichts ausführen, es funktioniert im Grunde als Symlink. Diese Art von .desktop-Dateien funktionieren überall.quelle
.desktop
Datei außerhalb/home
ohne ausführbares Bit hat bei mir nicht funktioniert. [ii] Kann ich einen Ordner hinzufügen$XDG_DATA_DIRS
? Ich habe esexport XDG_DATA_DIRS=$XDG_DATA_DIRS:~/.local/share/applications/
ohne Erfolg versucht ./home/
Verzeichnisses funktionieren soll . Wie ich geschrieben habe, verhält sich nautilus in der Praxis anders und führt sogar einige .desktop aus einem Home-Verzeichnis (~/.gnome2/
) aus, aber nicht aus jedem Verzeichnis außerhalb von / home, sondern nur aus XDG_DATA_DIRS. Daher denke ich, dass das Verhalten von Nautilus nicht perfekt mit der Politik übereinstimmt. [ii] Informationen zum Hinzufügen eines Verzeichnisses finden Sie in diesem Blogbeitrag .Sie können die
.desktop
Datei erstellen und ablegen~/.local/share/applications
- dann wird sie im Bindestrich / Menü / was auch immer angezeigt.Es muss ungefähr so aussehen:
Dies liegt daran, dass die Dateien in den Dateien
~/.local/share/applications
genauso funktionieren wie die Dateien in./usr/share/applications
Beide funktionieren auf den meisten Systemen ohne ausführbare Berechtigungen einwandfrei, auch wenn sie einem anderen Benutzer als root gehören. Dies scheint jedoch nicht immer der Fall zu sein.Damit die Datei tatsächlich angeklickt und dann geöffnet werden kann, sind ausführbare Berechtigungen erforderlich.
quelle
.desktop
Datei nur ausführen,~/.local/share/applications
wenn sie über die Ausführungsberechtigung verfügt.-rw-r--r--
....Es scheint nein, Sie können nicht ohne GNOME zu ändern. Es gibt einen Launchpad-Fehlerbericht , der zu diesem genauen Problem bestätigt, aber nicht bearbeitet wird.
Wenn Sie eine benutzerdefinierte
.desktop
Datei/usr/share/applications/
mit dem Eigentümer root erstellen , ist keine Ausführungsberechtigung erforderlich.quelle