web-dev-qa-db-ja.com

.desktopファイルの許可

.desktopファイルの権限について明確にする必要があります。ルートが所有する.desktop内のすべての/usr/share/applications/ファイルに権限があることを確認できます。

-rw-r--r--

ユーザーが所有するexamples.desktop$HOMEも同じ権限を持っています。これらはすべて正常に実行されます。

しかし、同じ許可を持つカスタム.desktopファイルを作成しようとすると、次のエラーメッセージがスローされます。

信頼できないアプリケーションランチャー
アプリケーションランチャー「myapp.desktop」は信頼済みとしてマークされていません。このファイルのソースがわからない場合は、起動すると安全ではない可能性があります。

ただし、実行許可を追加すると、問題なく実行できます。

Q:カスタム.desktopファイルを実行するには+x権限が必要なのはなぜですか、または一部の.desktopファイルは実行権限なしで実行できるのですか?実行許可なしでカスタム.desktopファイルを実行することは可能ですか?

9
souravc

これは buntuのセキュリティポリシー からです。

実行許可ビットが必要

  • デスクトップとシェルを含むアプリケーションは、両方の場合、ファイルから実行可能コードを実行しないでください。

    • 実行可能ビットがない
    • ユーザーのホームディレクトリまたは一時ディレクトリにあります。
  • これには、*。desktop、*。jar、および* .exeファイルが含まれます。

  • とにかくそれらを自動的に実行するための回避策を提供するものはありません...

そのため、このポリシーに従って、実行可能ビットを設定せずに.desktopファイルを実行できるようにする必要があります。このポリシーによると、そのファイルを/home/および/tmp/ディレクトリから移動するだけで、実行可能ビットを設定せずに起動できます。これは理論上/ポリシーに従っています。

実際には、nautilusを使用すると、XDG_DATA_DIRディレクトリと~/.gnome2/ディレクトリから実行可能ビットを設定せずに.desktopファイルを起動できます。 echo $XDG_DATA_DIRSコマンドでXDG_DATA_DIRSを確認できます。したがって、.desktopファイルをXDG_DATA_DIRまたは~/.gnome2/に配置すると、実行可能ビットを設定せずにnautilusから起動できます。少なくとも12.04では、そのように動作します。 これは、私が知らない前述のポリシーに沿ったものです。


質問で言及されたexamples.desktopについて:その.desktopファイルは異なる種類の.desktopファイルです。これは「リンク」であり、何も実行したくないため、基本的にシンボリックリンクとして機能します。これらの種類の.desktopファイルはどこでも機能します。

12
falconer

.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

これは、~/.local/share/applicationsのファイルが/usr/share/applicationsのファイルと同じように機能するためです。ほとんどのシステムでは、root以外のユーザーが所有している場合でも、実行可能権限なしで正常に機能しますしかし、これは常にそうであるとは限りません。

実際にファイルをクリックしてから開くには、実行可能権限が必要です。

1
Wilf

いいえ、GNOMEを変更せずにはいられません。 launchpadバグレポート があり、この正確な問題については確認されていますが、対応はされていません。

所有者ルートを持つ.desktopの下にカスタム/usr/share/applications/ファイルを作成する場合、実行権限は必要ありません。

0
Olli