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 .desktopDatei im Home-Verzeichnis des Benutzers?
Gemäß der Sicherheitsrichtlinie von Ubuntu ist die Ausführungsberechtigung in .desktopsDateien 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 .desktopDatei 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 .desktopder Name einer gültigen Datei aus dem Feld Name=oder Name[$LANG]in der .desktopDatei angezeigt wird, wobei der Dateiname und die Erweiterung ignoriert werden. Dies gilt nicht für .shoder .jarDateien 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 .desktopDatei 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.desktopund überprüfen smartgit.desktop. Ersteres hat ein ausführbares Bit gesetzt, letzteres nicht.
Aus diesem Grund erkennt nautilus Eclipse.desktopals Anwendungsverknüpfungen und zeigt seine Erweiterung nicht an.