TL、DR:これはApparmorのせい/home
です。ホームディレクトリが外側にあるためです。
Ubuntu 10.04のデフォルトインストールでは、apparmorパッケージはubuntu-standardパッケージの間接的なRecommendsレベルの依存関係として取り込まれます。システムログ(/var/log/syslog
)は、ApparmorがEvinceの読み取り試行を拒否していることを示しています~/.Xauthority
。
Jul 5 17:58:31 darkstar kernel: [15994724.481599] type=1503 audit(13415
03911.542:168): operation="open" pid=9806 parent=9805 profile="/usr/bin/evince"
requested_mask="r::" denied_mask="r::" fsuid=1001 ouid=1001 name="/elsewhere/home/gilles/.Xauthority"
ApparmorのデフォルトのEvince構成(内/etc/apparmor.d/usr.bin.evince
)は非常に寛容です。すべてのホームディレクトリで任意の読み取りと書き込みが可能です。ただし、このマシンのホームディレクトリは、デフォルトのAppArmor構成にリストされていない非標準の場所へのシンボリックリンクです。アクセスはで許可されて/home
いますが、ホームディレクトリの実際の場所は/elsewhere/home/gilles
なので、アクセスが拒否されます。
この問題の影響を受ける可能性のある他のアプリケーションは次のとおりです。
- Firefoxですが、そのプロファイルはデフォルトで無効になっています(シンボリックリンクがあるため
/etc/apparmor.d/disable/usr.bin.firefox -> /etc/apparmor.d/usr.bin.firefox
)。
- CUPS PDF印刷; 私はテストしていませんが、への書き込みに失敗することを期待してい
~/PDF
ます。
私の修正は/etc/apparmor.d/tunables/home.d/local
、行を編集して追加することでした
@{HOMEDIRS}+=/elsewhere/home/
ホームディレクトリの非標準の場所を認識させるには(最後/
が重要であることに注意してください。のコメントを参照してください/etc/apparmor.d/tunables/home.d/ubuntu
)、実行/etc/init.d/apparmor reload
してApparmor設定を更新します。
管理者権限がなく、システム管理者が応答しない場合は、evince
バイナリをなどの別の場所にコピーできます。~/bin
これは、Apparmorポリシーの対象にはなりません(そのため、起動できますが、 Apparmorが提供する非常に限られた追加のセキュリティは提供されません)。
この問題はUbuntuバグ#447292として報告されています。解決策は、一部のユーザーが/etc/passwd
outside /home
にリストされているホームディレクトリを持っている場合のケースを処理しますが、私のような/home/gilles
はシンボリックリンクです。