TL, DR: è colpa di Apparmor, e perché la mia directory home è fuori /home
.
Sotto un'installazione predefinita di Ubuntu 10.04, il pacchetto apparmor viene inserito come una dipendenza indiretta a livello di Raccomandazione del pacchetto ubuntu-standard . I registri di sistema ( /var/log/syslog
) mostrano che Apparmor sta rifiutando il tentativo di Evince di leggere ~/.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"
La configurazione predefinita di Evince per Apparmor (in /etc/apparmor.d/usr.bin.evince
) è molto permissiva: consente letture e scritture arbitrarie in tutte le home directory. Tuttavia, la mia home directory su questa macchina è un collegamento simbolico a una posizione non standard che non è elencata nella configurazione AppArmor predefinita. L'accesso è consentito in /home
, ma la posizione reale della mia home directory è /elsewhere/home/gilles
, quindi l'accesso è negato.
Altre applicazioni che potrebbero essere interessate da questo problema includono:
- Firefox, ma il suo profilo è disabilitato per impostazione predefinita (dalla presenza di un collegamento simbolico
/etc/apparmor.d/disable/usr.bin.firefox -> /etc/apparmor.d/usr.bin.firefox
).
- Stampa PDF CUPS; Non ho ancora testato, ma mi aspetto che non riesca a scrivere
~/PDF
.
La mia correzione era quella di modificare /etc/apparmor.d/tunables/home.d/local
e aggiungere la linea
@{HOMEDIRS}+=/elsewhere/home/
per riconoscere la posizione non standard delle home directory (notare che il finale /
è importante; vedere i commenti in /etc/apparmor.d/tunables/home.d/ubuntu
), quindi eseguire /etc/init.d/apparmor reload
per aggiornare le impostazioni di Apparmor.
Se non si dispone dei privilegi di amministratore e l'amministratore di sistema non risponde, è possibile copiare il file evince
binario in una posizione diversa, ad esempio ~/bin
, e non sarà coperto dalla politica di Apparmor (quindi sarà possibile avviarlo, ma non sarà garantita la sicurezza extra molto limitata fornita da Apparmor).
Questo problema è stato segnalato come bug # 447292 di Ubuntu . La risoluzione gestisce il caso in cui alcuni utenti hanno la loro home directory come elencata /etc/passwd
all'esterno /home
, ma non casi come il mio in cui /home/gilles
è presente un collegamento simbolico.