Je pensais qu'il y a que AppArmor et SELinux qui limitent les droits d'un logiciel sur un système de fichiers. Ben non, il y a aussi systemd, avec les directives ReadWritePaths, ReadOnlyPaths et InaccessiblePaths d'une unit de type service, donc avec les espaces de nommage Linux.
Je l'ai découvert avec le serveur de noms nsd. Alors que je lui demandais d'écrire le fichier de zone correspond à une zone pour laquelle mon serveur est slave avec nsd-control write <nom_zone>, nsd a journalisé ce qui suit :
nsd[14377]: nsd[14377]: info: writing zone <CENSURE>. to file /var/named/zones/slave/<CENSURE>
nsd[14377]: error: cannot write zone <CENSURE>. file /var/named/zones/slave/<CENSURE>~: Read-only file system
nsd[14377]: cannot write zone <CENSURE>. file /var/named/zones/slave/<CENSURE>~: Read-only file system
Hé oui, je sauvegarde mes fichiers de zone, c'est-à-dire le contenu que je publie dans le DNS, dans /var/named, tout comme on met le contenu d'un site web, c'est-à-dire ce qu'on publie, dans /var/www.
Solution :
systemctl edit nsd.service ;Le fichier doit avoir le contenu suivant :
[Service]
ReadWritePaths=/var/lib/nsd /etc/nsd /run /var/named/zones/slave
systemctl daemon-reload ;systemctl restart nsd.service.