系统:Ubuntu 16.04.3 LTS
概要:
#chmod 777 /etc/bind/slave
#chmod 777 /etc/bind
#service bind9 restart
#tail /var/log/syslog | grep dump
Aug 23 07:14:45 appserver named[25251]: dumping master file: /etc/bind/slave/tmp-IDIdwXAG2I: open: permission denied
这里发生了什么事???
答案1
发生的情况是该named
进程无法在/etc/bind/slave/
目录中创建文件。
首先,/etc
对于常规服务来说,这确实是一个非常不寻常的位置,无法获得写入权限。通常,您会使用位于或取决于数据类型的
目录。/var/lib
/var/cache
至于为什么你的极其自由的许可(根本不是一个好主意)没有帮助,我猜装甲(更可能适用于 Ubuntu)或SELinux有一个 BIND 配置文件,该配置文件基于合理的假设(见上文),即哪些文件路径需要可写named
。这适用于文件系统权限。
我建议您将可写文件移动到更合理的位置。
答案2
上面的答案很好地解释了原因。 在 中定义了一个相对路径
/etc/bind/named.conf.options
,即directory "/var/cache/bind
。
因此,我建议将您的从属区域文件存储到文件中定义的更合理的目录中named.conf.local
,并将目录的所有权授予绑定组或将写权限授予绑定组,
喜欢:
mkdir /var/cache/bind/slaves
chown bind:bind /var/cache/bind/slaves