TL, DR: to wina Apparmora, a mój katalog domowy jest na zewnątrz /home
.
W ramach domyślnej instalacji Ubuntu 10.04 pakiet apparmor jest pobierany jako pośrednia zależność na poziomie standardowym pakietu ubuntu . Logi systemowe ( /var/log/syslog
) pokazują, że Apparmor odrzuca próbę odczytu Evince'a ~/.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"
Domyślna konfiguracja Evince dla Apparmor (in /etc/apparmor.d/usr.bin.evince
) jest bardzo liberalna: pozwala na dowolne odczyty i zapisy we wszystkich katalogach domowych. Jednak mój katalog domowy na tym komputerze jest dowiązaniem symbolicznym do niestandardowej lokalizacji, która nie jest wymieniona w domyślnej konfiguracji AppArmor. Dostęp jest dozwolony pod /home
, ale prawdziwa lokalizacja mojego katalogu domowego jest /elsewhere/home/gilles
, więc odmowa dostępu.
Inne aplikacje, na które ten problem może mieć wpływ, to:
- Firefox, ale jego profil jest domyślnie wyłączony (przez obecność dowiązania symbolicznego
/etc/apparmor.d/disable/usr.bin.firefox -> /etc/apparmor.d/usr.bin.firefox
).
- Drukowanie PDF CUPS; Nie testowałem, ale spodziewam się, że nie powiedzie się to do pisania
~/PDF
.
Moją poprawką było edytowanie /etc/apparmor.d/tunables/home.d/local
i dodawanie linii
@{HOMEDIRS}+=/elsewhere/home/
aby rozpoznać niestandardową lokalizację katalogów domowych (pamiętaj, że finał /
jest ważny; zobacz komentarze w /etc/apparmor.d/tunables/home.d/ubuntu
), a następnie uruchom, /etc/init.d/apparmor reload
aby zaktualizować ustawienia Apparmor.
Jeśli nie masz uprawnień administratora, a administrator systemu nie odpowiada, możesz skopiować evince
plik binarny do innej lokalizacji, na przykład ~/bin
i nie będzie on objęty zasadami Apparmor (więc będziesz mógł go uruchomić, ale nie otrzyma bardzo ograniczonego dodatkowego bezpieczeństwa zapewnianego przez Apparmor).
Kwestia ta została zgłoszona jako bug # 447292 Ubuntu . Rozdzielczość obsługuje przypadek, gdy niektórzy użytkownicy mają swój katalog domowy wymieniony na /etc/passwd
zewnątrz /home
, ale nie przypadki takie jak mój, gdzie /home/gilles
jest dowiązanie symboliczne.
Miałem ten sam problem, a twoja odpowiedź wskazała mi właściwy kierunek. Znalazłem inne rozwiązanie, które nie wymaga edycji konfiguracji aparatu. Zamiast używać dowiązania symbolicznego do przekierowywania dostępu
/home
, użyjbind
opcji namount
. Dodałem następujący wiersz do/etc/fstab
:Gdy to zrobisz, apparmor nie będzie nawet wiedział, że katalogi
/home
znajdujące się „naprawdę” znajdują się gdzie indziej, więc skargi znikną.Zaletą tego podejścia jest to, że będzie działać dla wszystkich aplikacji, bez konieczności edytowania innego pliku konfiguracyjnego Apparmor dla każdego z nich.
źródło
/home
a inne nie/home
. Wariant dla tej sprawy jest do montażu wiążą/elsewhere/home/gilles
się/home/gilles
, lub/elsewhere/home
do/home/elsewhere
.