.desktopファイルの権限


10

.desktopファイルの権限についての説明が必要です。rootが所有するすべての.desktopファイルに/usr/share/applications/権限があることがわかります。

-rw-r--r--

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

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

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

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

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


関連していますが、質問には回答しません。
Olli 2014

回答:


12

これはUbuntuのセキュリティポリシーによるものです。

実行許可ビットが必要

  • デスクトップとシェルを含むアプリケーションは、次の両方の場合、ファイルから実行可能コードを実行してはなりません。

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

  • とにかく自動的に実行するための回避策はありません...

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

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


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


1
ご回答有難うございます。それは私が知りたかったほとんどすべてをカバーしています。あと2つです。[i] 12.04も使用してい.desktopますが、/home実行可能ビットのない外部のファイルは機能しませんでした。[ii]にフォルダを追加できます$XDG_DATA_DIRSか?失敗しexport XDG_DATA_DIRS=$XDG_DATA_DIRS:~/.local/share/applications/ました。
souravc 2014

@souravc [i]私が言ったように、それはそれが/home/ディレクトリの外で働くべきであるという方針によるものです。私が書いたように、実際にはnautilusは動作が異なり、ホームディレクトリ(~/.gnome2/)から一部の.desktopを実行しますが、/ home外のすべてのディレクトリからは実行せず、XDG_DATA_DIRSからのみ実行します。ですから、ノーチラスの振る舞いはポリシーに完全には一致していないと思います。[ii]ディレクトリを追加する方法については、このブログ投稿をご覧ください
鷹匠

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

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

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


1
@ downvoter plzは建設的な批判のためにコメントを残します。@wilf私はあなたの答えが私の質問に正確に答えているわけではないと思います。実行権限がないと.desktopファイルを実行できません~/.local/share/applications
souravc 2014

私はこれがそのような答えではないことを知っています。私は問題を経験したことがありません。Geditで上記と同様の内容のテキストファイルを作成し、ログアウトしてログインすると、正常に機能します。Ubuntu10、12.04、13.04、13.10、およびFedora 12前後のFedoraのバージョン。一部はDebianにもあります。彼らはほとんど権限を持っていることを示してチェック-rw-r--r--....
Wilf

0

いいえ、そうではありません。GNOMEを変更せずにはいられません。この正確な問題については、確認済みですが実行されていないランチパッドバグレポートがあります。

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


このバグレポートは本当に古いものです(Ubuntu 10.04)。私はUbuntu 12.04のそのようなレポートに出くわしませんでした。何か見つけましたか?
souravc 2014
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.