TL, DR: es culpa de Apparmor, y debido a que mi directorio de inicio está fuera /home
.
En una instalación predeterminada de Ubuntu 10.04, el paquete apparmor se incorpora como una dependencia indirecta de nivel de recomendación del paquete ubuntu-standard . Los registros del sistema ( /var/log/syslog
) muestran que Apparmor está rechazando el intento de Evince de leer ~/.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 configuración predeterminada de Evince para Apparmor (in /etc/apparmor.d/usr.bin.evince
) es muy permisiva: permite lecturas y escrituras arbitrarias en todos los directorios de inicio. Sin embargo, mi directorio de inicio en esta máquina es un enlace simbólico a una ubicación no estándar que no figura en la configuración predeterminada de AppArmor. El acceso está permitido debajo /home
, pero la ubicación real de mi directorio de inicio es /elsewhere/home/gilles
, por lo que el acceso es denegado.
Otras aplicaciones que podrían verse afectadas por este problema incluyen:
- Firefox, pero su perfil está deshabilitado de forma predeterminada (por la presencia de un enlace simbólico
/etc/apparmor.d/disable/usr.bin.firefox -> /etc/apparmor.d/usr.bin.firefox
).
- TAZAS de impresión de PDF; No lo he probado, pero espero que no pueda escribir
~/PDF
.
Mi solución fue editar /etc/apparmor.d/tunables/home.d/local
y agregar la línea
@{HOMEDIRS}+=/elsewhere/home/
para que se reconozca la ubicación no estándar de los directorios de inicio (tenga en cuenta que la final /
es importante; vea los comentarios en /etc/apparmor.d/tunables/home.d/ubuntu
), luego ejecute /etc/init.d/apparmor reload
para actualizar la configuración de Apparmor.
Si no tiene privilegios de administrador y el administrador del sistema no responde, puede copiar el evince
binario en una ubicación diferente, por ejemplo ~/bin
, y no estará cubierto por la política de Apparmor (por lo que podrá iniciarlo, pero no se le otorgará la seguridad adicional muy limitada que proporciona Apparmor).
Este problema se ha informado como error de Ubuntu # 447292 . La resolución maneja el caso cuando algunos usuarios tienen su directorio de inicio como aparece en el /etc/passwd
exterior /home
, pero no casos como el mío donde /home/gilles
hay un enlace simbólico.