TL, DR: це вина Apparmor, і через те, що мій домашній каталог знаходиться зовні /home.
Під встановленням Ubuntu 10.04 за замовчуванням пакет apparmor втягується як непряма Рекомендована залежність рівня стандартного пакету 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"
Конфігурація Evince за замовчуванням для Apparmor (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).
- Друк PDF на CUPS; Я не проходив тестування, але очікую, що це не вдасться написати
~/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зовні /home, але не такі випадки, як, наприклад, моя, де /home/gillesсимволічне посилання.