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.
Tuve el mismo problema, y su respuesta me señaló en la dirección correcta. Encontré una solución diferente que no requiere editar la configuración de apparmor. En lugar de usar un enlace simbólico para redirigir el acceso
/home
, use labind
opción activadomount
. Agregué la siguiente línea a/etc/fstab
:Una vez que haga esto, apparmor ni siquiera sabrá que los directorios debajo
/home
están "realmente" ubicados en otro lugar, por lo que las quejas desaparecerán.La ventaja de este enfoque es que funcionará para todas las aplicaciones, sin tener que editar un archivo de configuración de apparmor diferente para cada una.
fuente
/home
y otros no debajo/home
. Una variante para este caso es unir-montar/elsewhere/home/gilles
a/home/gilles
, o/elsewhere/home
a/home/elsewhere
.