web-dev-qa-db-fra.com

Pourquoi read (r) est-il refusé dans un fichier 777?

Je suis les instructions sur le wiki Samba pour configurer BIND9 DLZ en tant que serveur DNS pour mon contrôleur de domaine Active Directory. Cependant, je ne peux même pas obtenir named pour commencer. Il veut un accès en écriture à un fichier, mais ne peut pas l'obtenir ...

named[886]: /etc/bind/named.conf:9: open: /var/lib/samba/private/named.conf: permission denied
named[886]: loading configuration: permission denied
named[886]: exiting (due to fatal error)
systemd[1]: bind9.service: Main process exited, code=exited, status=1/FAILURE
kernel: [    5.004922] audit: type=1400 audit(1502211678.138:9): apparmor="DENIED" operation="open" profile="/usr/sbin/named" name="/var/lib/samba/private/named.conf" pid=906 comm="named" requested_mask="r" denied_mask="r" fsuid=114 ouid=0
systemd[1]: bind9.service: Control process exited, code=exited status=1
systemd[1]: bind9.service: Unit entered failed state.
systemd[1]: bind9.service: Failed with result 'exit-code'.

Je pensais que je devais avoir gâché les autorisations d'une manière ou d'une autre, mais en exécutant ls -l /var/lib/samba/private/named.conf, cela me donnait:

-rw-rw-r-- 1 root root 678 Aug  8 17:56 /var/lib/samba/private/named.conf

Étant donné que les autorisations étaient 664, tout utilisateur aurait dû pouvoir accéder au fichier. Même faire chown bind:bind (certainement le bon utilisateur, voir le journal du noyau), ou définir des autorisations sur 777 ne résout pas le problème .

La partie déroutante est apparmor="DENIED" operation="open" profile="/usr/sbin/named" name="/var/lib/samba/private/named.conf" pid=906 comm="named" requested_mask="r" denied_mask="r" fsuid=114 ouid=0.

Qu'est-ce qui me manque/je ne comprends pas?

3
Alex V-P

AppArmor bloquait la lecture. Je suis allé à /etc/apparmor.d/usr.sbin.named et j'ai ajouté la ligne:

/var/lib/samba/private/named.conf r,

qui a permis à named de lire le fichier.

3
Alex V-P