.Xauthorityを読み取れないため、Evinceを起動できません。

.Xauthorityを読み取れないため、Evinceを起動できません。

SSHを介してリモートでログインし、Ubuntu 10.04(clear)を実行しているシステムにX転送を使用しました。ほとんどのX11アプリケーション(xterm、gnome-terminalなど)は正常に動作します。しかし、エヴァンスは始まらなかった。ファイルが存在し、明らかに読み取ることができるにもかかわらず、読み取ることができないようです~/.Xauthority(正しい権限があり、他のアプリケーションから正常に読み取ることができます)。

$ evince
X11 connection rejected because of wrong authentication.
Cannot parse arguments: Cannot open display:
$ echo DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY
DISPLAY=localhost:10.0 XAUTHORITY=
$ strace evince
access("/home/gilles/.Xauthority", R_OK) = 0
open("/home/gilles/.Xauthority", O_RDONLY) = -1 EACCES (Permission denied)
$ ls -l ~/.Xauthority
-rw------- 1 gilles gilles 496 Jul  5 13:34 /home/gilles/.Xauthority

読むことができないほどのEvinceの特別な点は何ですか~/.Xauthority?どうやって始めることができますか?

ベストアンサー1

TL、DR:私のホームディレクトリが.にあるので、これはApparmorの誤りです/home

Ubuntu 10.04の基本インストールでは、アパモアパッケージは間接的な推奨レベルの依存関係としてインポートされます。Ubuntu標準パック。システムログ(/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設定(in /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 reloadApparmor設定を更新します。

管理者権限がなくシステム管理者が応答しない場合、バイナリをevince別の場所(たとえば)にコピーすると、~/binApparmorポリシーによって上書きされません。追加のセキュリティのために、非常に限られた衣類の提案を取得しないでください)。

この問題は次のように報告されました。Ubuntuのバグ#447292。このソリューションは、/etc/passwd一部のユーザーのホームディレクトリがexternalにリストされている場合を処理します/homeが、私のような場合は/home/gillesシンボリックリンクの場合は処理しません。

おすすめ記事