.desktop文件的权限


10

需要一些有关.desktop文件权限的澄清。我可以看到root拥有的所有.desktop文件/usr/share/applications/都有权限,

-rw-r--r--

同时examples.desktop,在$HOME由用户拥有具有相同的权限。所有这些都能正常运行。

但是,当我要创建.desktop具有相同权限的自定义文件时,它会抛出以下错误消息,

不受信任的应用程序启动器
应用程序启动器“ myapp.desktop”尚未标记为受信任。如果您不知道此文件的来源,则启动它可能是不安全的。

但是,添加执行许可权使其可以毫无问题地运行。

问:为什么自定义.desktop文件需要具有+x运行权限,或者某些.desktop文件在没有执行权限的情况下可以运行?.desktop未经执行许可可以运行自定义文件吗?


相关,但不回答问题。
Olli 2014年

Answers:


12

这来自Ubuntu的安全策略

需要执行权限位

  • 包括台式机和外壳程序在内的应用程序必须同时运行以下文件中的可执行代码:

    • 缺少可执行位
    • 位于用户的主目录或临时目录中。
  • 这包括* .desktop,*。jar和* .exe文件。

  • 没有任何办法可以提供解决方法以自动运行它们...

因此,是的,根据此策略,应该可以在不设置可执行位的情况下运行.desktop文件。根据此策略,您只需要将该文件从/home//tmp/目录中移出,然后就可以在不设置可执行位的情况下启动它。理论上/根据政策。

实际上,鹦鹉螺将允许您启动.desktop文件,而无需从XDG_DATA_DIR目录和该~/.gnome2/目录中设置可执行位。您可以使用以下echo $XDG_DATA_DIRS命令检查XDG_DATA_DIRS 。因此,如果将.desktop文件放入XDG_DATA_DIR或其中,~/.gnome2/则无需设置可执行位就可以从nautilus启动该文件。至少在12.04上它是这样工作的。这如何符合我不知道的上述政策。


对于examples.desktop问题中提到的:.desktop文件是另一种.desktop文件。它是一个“链接”,它不需要执行任何操作,它基本上可以用作符号链接。这些.desktop文件可在任何地方使用。


1
感谢您的回答。它涵盖了几乎所有我想知道的内容。再说两件事。[i]我也在使用12.04,但是没有可执行.desktop文件的外部/home文件对我来说不起作用。[ii]我可以在$XDG_DATA_DIRS?中添加任何文件夹,但尝试export XDG_DATA_DIRS=$XDG_DATA_DIRS:~/.local/share/applications/失败。
souravc 2014年

@souravc [i]正如我所说,这是根据其应该在/home/目录之外工作的策略。如我所写,在实际中,鹦鹉螺的行为有所不同,甚至从主目录(~/.gnome2/)运行一些.desktop,但不是从/ home之外的每个目录运行,而仅从XDG_DATA_DIRS运行。因此,我认为鹦鹉螺的行为并不完全符合该政策。[ii]有关如何添加目录的信息,请查看此博客文章
falconer 2014年

1

您可以创建.desktop文件并将其放置在~/.local/share/applications-中,然后它将显示在破折号/菜单/任何地方。

它需要看起来像这样:

[Desktop Entry]
Name=Files
Comment=Launch Nemo File manager
Keywords=folder;manager;explore;disk;filesystem;
Exec=nemo %U
Icon=system-file-manager
Terminal=false
Type=Application
StartupNotify=true
OnlyShowIn=GNOME;Unity;
Categories=GNOME;GTK;Utility;Core;
NoDisplay=false

这是因为in中的文件与in中的文件~/.local/share/applications工作相同/usr/share/applications-在大多数系统上,即使没有root权限,它们在没有可执行权限的情况下也可以正常工作。但是,似乎并非总是如此。

要实际获取要单击的文件然后再打开,它需要可执行权限。


1
@ downvoter plz发表评论,以进行建设性批评。@wilf我认为您的答案不能完全回答我的问题。除非具有执行权限.desktop~/.local/share/applications否则我无法从中运行文件。
souravc 2014年

我知道这不是答案。我从来没有遇到过这个问题,我只是在Gedit中创建了与上述内容相似的文本文件,注销和登录,并且可以正常工作。...我在Ubuntu 10、12.04、13.04、13.10和任何其他版本上都做得很好自Fedora 12以来的Fedora版本。检查显示他们大部分都具有权限-rw-r--r--....
Wilf 2014年

0

似乎没有,您不能不修改GNOME。有一个启动板错误报告,已针对此确切问题进行了确认,但未采取任何措施。

当您使用所有者根目录创建自定义.desktop文件时/usr/share/applications/,不需要执行权限。


此错误报告确实很旧(在Ubuntu 10.04上)。我没有找到关于Ubuntu 12.04的任何此类报告。你有发现什么吗
souravc 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.