sou*_* c. 20
引用Ubuntu 的安全政策:
需要执行权限位
应用程序(包括桌面和外壳程序)在以下情况下不得从文件运行可执行代码:
- 缺少可执行位
- 位于用户的主目录或临时目录中。
这包括 *.desktop、*.jar 和 *.exe 文件。
.desktop用户主目录下的有效文件是什么?
根据 Ubuntu 的安全策略,当.desktops文件和 shell 脚本位于用户的主目录时,要从这些文件运行可执行代码,必须具有执行权限。
Nautilus 不会将.desktop文件视为有效的应用程序快捷方式,除非它位于用户的主目录中时具有可执行位。
另一方面,它在 nautilus 的源代码中进行了硬编码,它将显示.desktop来自文件内的Name=orName[$LANG]字段的有效文件名,而.desktop忽略文件名和扩展名。这不适用于nautilus 中的.sh或.jar文件。
示例:在全新的 Ubuntu 安装中,每个用户都会examples.desktop进入他们的主目录。文件名为examples.desktop. 但在鹦鹉螺中,人们可以将其视为Examples. 如果您查看.desktop文件内部,您可以看到以下内容(我只展示了其中的一部分):
名称=示例 名称[aa]=Ceeallo .. 名称[en_AU]=示例 名称[en_CA]=示例 名称[en_GB]=示例 ..
您可以检查的权限(TRY ls -la /path/to/filename.extension)的Eclipse.desktop和smartgit.desktop。前者设置了可执行位,而后者没有。
这就是 nautilus 识别Eclipse.desktop为应用程序快捷方式而不显示其扩展名的原因。
Jac*_*ijm 18
.desktop文件是特殊文件。它们代表GUI 中的应用程序,无论是在桌面上还是在 Dash/Unity 中。为此,一个应用程序GUI 名称在行中的文件内的一行中设置
Name=Eclipse
Run Code Online (Sandbox Code Playgroud)
您可以简单地更改应用程序在 Dash 和 Unity 中的显示方式的名称,方法是在 .desktop文件中的,而无需更改文件的文件名.desktop。在这种情况下,文件是否可执行无关紧要。
如果.desktop文件是您的桌面上。然而,如果是不可执行,则它不能作为启动器工作,原因在 souravac 的回答中解释过,并以它自己的(文件)名称“显示”:
eclipse.desktop
Run Code Online (Sandbox Code Playgroud)
如果它 是可执行的并且在您的桌面上,则它作为启动器工作,因此它代表一个应用程序。然后它显示应用程序的名称,如行中设置的Name=
如果.desktop文件有一行:
X-Ubuntu-Gettext-Domain
Run Code Online (Sandbox Code Playgroud)
该文件甚至会显示从语言文件中获取的特定语言名称,然后该名称将显示在 Dash 和 Unity 中。
下面是一个复杂的例子:文件名 =inkskape.desktop,“基本”界面名称 = Inkskape,翻译名称 = Inkskape Vector Graphics Editor
该ls命令完全基于 cli,并且始终显示文件名。
| 归档时间: |
|
| 查看次数: |
2619 次 |
| 最近记录: |