Linux 技术手札

解决 BIND 错误: unable to rename log file

近日在安装了 DNS 服务器的主机上, Log 看到 BIND 不能轮替记录档的错误, 具体错误讯息如下:

Aug 27 03:57:53 dns named[8954]: unable to rename log file ‘/var/log/named.log’ to ‘/var/log/named.log.0’: permission denied

由于想方便管理, 我在 BIND 设定了 Log 记录档放在 /var/log/named.log, 而不是使用 BIND 默认的 /var/named/chroot/var/log/, 判段应该是 BIND 不能对 /var/log/ 目录写入的权限问题所致, 以下提供两个解决方法:

1. 在 /var/log/ 开一个新目录给 BIND, 将 BIND 的记录档都放在新目录内, 以及设定权限:

# mkdir /var/log/named
# chown named.named /var/log/named

接着开启 named.conf, 重新设定记录档位置:

# vi /etc/named.conf

找到 logging 的段落, 里面的 file 指定了记录档位置, 将记录档指定到新目录, 例如改成:

然后重新启动 BIND 便完成了:

# systemctl restart named

2. 另一个方法是, 将 BIND 的记录档重新指回 BIND 的默认目录, 开启 named.conf, 重新设定记录档位置:

# vi /etc/named.conf

找到 logging 的段落, 将记录档指回 BIND 的默认目录, 例如改成:

然后重新启动 BIND:

# systemctl restart named

最后在 /var/log/named 用 ln 指令建立 softlink 指向 /var/named/chroot/var/log/:

# ln -s /var/named/chroot/var/log/ /var/log/named
Exit mobile version