Zitat aus Ubuntus Sicherheitsrichtlinie :
Ausführungsberechtigungsbit erforderlich
Anwendungen, einschließlich Desktops und Shells, dürfen keinen ausführbaren Code aus Dateien ausführen, wenn beide:
- Fehlen des ausführbaren Bits
- befindet sich im Home-Verzeichnis oder im temporären Verzeichnis eines Benutzers.
Dies umfasst * .desktop-, * .jar- und * .exe-Dateien.
Was ist eine gültige .desktop
Datei im Home-Verzeichnis des Benutzers?
Gemäß der Sicherheitsrichtlinie von Ubuntu ist die Ausführungsberechtigung in .desktops
Dateien und Shells-Skripten ein Muss, um ausführbaren Code aus diesen Dateien auszuführen, wenn sie sich im Home-Verzeichnis eines Benutzers befinden.
Nautilus betrachtet eine .desktop
Datei nicht als gültige Anwendungsverknüpfungen, es sei denn, sie verfügt über ein ausführbares Bit, wenn sie sich im Home-Verzeichnis eines Benutzers befinden.
Andererseits ist es im Quellcode von nautilus fest codiert, dass .desktop
der Name einer gültigen Datei aus dem Feld Name=
oder Name[$LANG]
in der .desktop
Datei angezeigt wird, wobei der Dateiname und die Erweiterung ignoriert werden. Dies gilt nicht für .sh
oder .jar
Dateien in Nautilus.
Beispiel: Bei einer neuen Ubuntu-Installation erhält jeder Benutzer sein Ausgangsverzeichnis examples.desktop
. Der Dateiname lautet examples.desktop
. Aber im Nautilus kann man es so sehen Examples
. Wenn Sie in die .desktop
Datei schauen, sehen Sie Folgendes (ich zeige nur einen Teil davon):
Name = Beispiele
Name [aa] = Ceelallo
..
Name [en_AU] = Beispiele
Name [en_CA] = Beispiele
Name [en_GB] = Beispiele
..
Sie können die Berechtigung (try ls -la /path/to/filename.extension
) von Eclipse.desktop
und überprüfen smartgit.desktop
. Ersteres hat ein ausführbares Bit gesetzt, letzteres nicht.
Aus diesem Grund erkennt nautilus Eclipse.desktop
als Anwendungsverknüpfungen und zeigt seine Erweiterung nicht an.