web-dev-qa-db-fra.com

Evince ne sauvegardera pas les fichiers, dit "Autorisation refusée"

Si j'entre dans la boîte de dialogue de sauvegarde d'Evince, accédez à /home/username/Documents, dans mon répertoire personnel, et essayez de créer un nouveau répertoire (par exemple foo), l'opération échoue. Evince dit:

Could not create directory /home/[username]/Documents/foo: Permission denied

Evince refuse également d'enregistrer des fichiers avec le même type de message.

J'utilise Ubuntu 12.04 et j'essaye 3.4.0. Je dois également mentionner que/home est un lien symbolique vers/media/hdd/home (le système de fichiers est divisé sur un disque SSD et un disque dur; un peu une expérience). Cela ne dérange aucune autre application. Evince fonctionne comme moi et devrait avoir des autorisations d'écriture sur/media/hdd/home/username/Documents, selon ls -l.

dmesg montre qu'evince a essayé de créer le répertoire, mais a été refusé:

[10991.212472] type=1400 audit(1355983426.653:614): apparmor="DENIED"
operation="mkdir" parent=1 profile="/usr/bin/evince" name="/media/hdd/home
/username/Documents/foo/" pid=2940 comm="evince" requested_mask="c" denied_mask="c"
fsuid=1001 ouid=1001
2
Matt

J'ai eu le même problème et l'ai résolu avec:

$ Sudo apt-get install apparmor-utils
$ Sudo aa-complain /usr/bin/evince

Cela change le profil de l'apparmeur pour evince en mode plainte. Cela signifie que l'apparmeur se plaindra dans syslog de chaque action de preuve qui devrait être refusée (selon le profil) ... mais cela le permet néanmoins.

Bien sûr, ce n'est pas la meilleure solution car l'ensemble du profil est alors "désactivé". Mais comme je ne sais pas comment convaincre l'apparmeur de permettre de faire mkdir sur des cibles liées en dehors de ~ (ce qui est la raison du refus), cela fonctionne bien pour moi.

3
Nicolas

Dans mon cas, mon répertoire personnel était un lien symbolique vers un partage réseau qui n'était pas monté dans /home. Cela a amené Apparmor à refuser la création du répertoire. J'ai corrigé cela en ajoutant mon vrai chemin de répertoire personnel à l'ensemble des chemins de répertoire personnel dans la configuration d'Apparmor:

echo '@{HOMEDIRS}+=/myrealhomedir/' > /etc/apparmor.d/tunables/home.d/somename Sudo dpkg-reconfigure apparmor

1
user1225999

Désolé de creuser une vieille question, mais c'est la seule page pertinente à ce problème que j'ai trouvée. Je suis confronté au même problème dès que je change la façon dont je monte mon partage samba. Si vous utilisez la méthode Nautilus "standard" pour accéder aux fichiers sur un partage réseau, Nautilus montera le partage dans

/ run/user /

ou

~/.local/share/gvfs-metadata /

. Apparmor it setup pour accepter ces répertoires. Mais si vous montez le partage vous-même dans un autre répertoire, cela ne fonctionnera plus. Nous devons donc ajouter l'ensemble du partage réseau à la liste des répertoires autorisés.

Ceci est bien expliqué ici . Bien que la réponse de l'utilisateur1225999 fonctionne, la première ligne n'est pas nécessaire car le but de

Sudo dpkg-reconfigure apparmor

est de vous permettre de taper votre chemin de partage pour l'ajouter aux chemins du répertoire personnel. La commande ajoutera le chemin vers

/etc/apparmor.d/tunables/home.d/ubuntu

fichier (ce fichier existe déjà).

0
thierrybo