.desktopファイルのアクセス許可
.desktop
ファイルのパーミッションについて説明する必要があります。rootが所有するすべての.desktop
ファイルに/usr/share/applications/
権限があることがわかります。
-rw-r--r--
またexamples.desktop
、$HOME
ユーザーが所有している場合も同じ権限があります。それらはすべて正しく実行されます。
しかし.desktop
、同じ権限を持つカスタムファイルを作成しようとすると、次のエラーメッセージがスローされます。
信頼できないアプリケーションランチャー
信頼できるアプリケーションランチャー「myapp.desktopは、」マークされていません。このファイルのソースがわからない場合は、起動するのが安全でない可能性があります。
ただし、実行権限を追加すると、問題なく実行できるようになります。
Q:カスタム
.desktop
ファイル+x
に実行権限が必要なのはなぜですか、または一部の.desktop
ファイルを実行権限なしで実行するにはどうすればよいですか?.desktop
実行許可なしでカスタムファイルを実行することは可能ですか?
回答
これはUbuntuのセキュリティポリシーによるものです:
実行許可ビットが必要
デスクトップとシェルを含むアプリケーションは、両方が次の場合、ファイルから実行可能コードを実行してはなりません。
- 実行可能ビットが不足している
- ユーザーのホームディレクトリまたは一時ディレクトリにあります。
これには、*。desktop、*。jar、および* .exeファイルが含まれます。
とにかく自動的にそれらを実行するための回避策を提供するものはありません...
そうです、このポリシーによれば、実行可能ビットを設定せずに.desktopファイルを実行できるはずです。このポリシーによれば、そのファイルを/home/
and/tmp/
ディレクトリから移動するだけで、実行可能ビットを設定せずに起動できます。これは理論上/ポリシーによるものです。
実際には、nautilusを使用すると、XDG_DATA_DIRディレクトリおよびディレクトリから実行可能ビットを設定せずに.desktopファイルを起動できます~/.gnome2/
。XDG_DATA_DIRSはecho $XDG_DATA_DIRS
コマンドで確認できます。したがって、.desktopファイルをXDG_DATA_DIRまたはに配置~/.gnome2/
すると、実行可能ビットを設定せずにnautilusから起動できるようになります。少なくとも12.04では、そのように機能します。これは、私が知らない前述のポリシーとどのように一致していますか。
以下のためexamples.desktop
の.desktopファイルはの.desktopファイルの異なる種類であること:質問に言及しました。これは「リンク」であり、何も実行したくありません。基本的にはシンボリックリンクとして機能します。これらの種類の.desktopファイルはどこでも機能します。
.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以外のユーザーが所有している場合でも、実行可能権限がなくても正常に機能します。ただし、これが常に当てはまるとは限りません。
実際にファイルをクリックして開くには、実行可能権限が必要です。
いいえ、GNOMEを変更せずに行うことはできません。この正確な問題については確認済みですが、対処されていないランチパッドのバグレポートがあります。
所有者rootでカスタム.desktop
ファイルを作成する場合/usr/share/applications/
、実行権限は必要ありません。