web-dev-qa-db-ja.com

Evince Document Viewer-子プロセス「nemo」の実行に失敗しました(許可されていません)

私は最近nautilusからNemoに移行しました。 PDFを読んで、[ファイル]> [含むフォルダーを開く]オプションを選択しました。

このメッセージが表示されました:

Failed to execute child process "nemo" (Permission denied)

なぜこれが起こったのですか?
私に何ができる?

7
Chris

この問題は、AppArmorがevinceが実行できることを制限しているためと思われます。回避策は、証拠のためにAppArmorを無効にすることです。

Sudo ln -s /etc/apparmor.d/usr.bin.evince /etc/apparmor.d/disable/usr.bin.evince
Sudo /etc/init.d/apparmor restart

この問題の詳細については、この link をご覧ください。

5
OSE

保護を完全にオフにするのではなく、許容されるすべてのツールの行を/usr/bin/evince { ... }ブロックに追加できます

/etc/apparmor.d/usr.bin.evince

行の形式は次のとおりです。

/path/to/binary ixr,

次に、AppArmorを再起動します。

Sudo service apparmor restart
10
Raphael

OSE が指摘したように、この問題はAppArmorがevinceが起動できるプログラムを制限しているためです。 /etc/apparmor.d/usr.bin.evinceを編集することにより、Evinceの起動が許可されているアプリケーションのリストにnemoを追加できます(root権限が必要です)

次のようなファイルのセクションを見つけます。

  # By default, we won't support launching a terminal program in Xterm or
  # KDE's konsole. It opens up too many unnecessary files for most users.
  # People who need this functionality can uncomment the following:
  ##include <abstractions/ubuntu-xterm>
  ##include <abstractions/ubuntu-konsole>

  /usr/bin/evince rmPx,
  /usr/bin/evince-previewer Px,
  /usr/bin/Yelp Cx -> sanitized_helper,
  /usr/bin/bug-buddy px,
  # 'Show Containing Folder' (LP: #1022962)
  /usr/bin/nautilus Cx -> sanitized_helper, # Gnome
  /usr/bin/pcmanfm Cx -> sanitized_helper,  # LXDE
  /usr/bin/krusader Cx -> sanitized_helper, # KDE
  /usr/bin/thunar Cx -> sanitized_helper,   # XFCE

次の行を追加します:/usr/bin/nemo Cx -> sanitized_helper, # Gnome,Linux Mint,etc

でAppArmorを再起動します

Sudo /etc/init.d/apparmor restart

Evinceがnemoを起動できるようになります。