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
символічне посилання.