Debian - 更新 bind9 后无法在 /var/log/bind 中创建日志

Debian - 更新 bind9 后无法在 /var/log/bind 中创建日志

刚刚升级了 debian,named 现在无法启动。我配置了 2 个日志通道:

    channel "named_log" {
        file "/var/log/bind/named.log" versions 10 size 2m;
        severity dynamic;
        print-category yes;
        print-severity yes;
        print-time yes;
    };

    channel "query_log" {
        file "/var/log/bind/query.log" versions 2 size 100k;
        severity dynamic;
        print-severity yes;
        print-time yes;
    };

升级前一切正常。以下是目录:

root@dom:/var/log/bind# ls -la /var/log/bind
total 156
drwxrwsr-x  2 bind bind   4096 Oct 30 17:14 .
drwxr-xr-x 36 root root   4096 Oct 30 15:41 ..
-rw-r-----  1 bind bind 149847 Oct 30 17:45 bind9.log
root@dom:/var/log/bind# id bind
uid=110(bind) gid=118(bind) groups=118(bind)
root@dom:/var/log/bind# ls -lna /var/log/bind
total 156
drwxrwsr-x  2 110 118   4096 Oct 30 17:14 .
drwxr-xr-x 36   0   0   4096 Oct 30 15:41 ..
-rw-r-----  1 110 118 149847 Oct 30 17:45 bind9.log
root@dom:/var/log/bind# named -v
BIND 9.11.5-P4-5.1-Debian (Extended Support Version) <id:998753c>
root@dom:~# ps -eo pid,gid,euid,comm|grep named
 6677   118   110 named

但是有这个:

Oct 30 17:04:35 dom named[4997]: configuring command channel from '/etc/bind/rndc.key'
Oct 30 17:04:35 dom named[4997]: command channel listening on 127.0.0.1#953
Oct 30 17:04:35 dom named[4997]: isc_stdio_open '/var/log/bind/named.log' failed: permission denied
Oct 30 17:04:35 dom named[4997]: configuring logging: permission denied
Oct 30 17:04:35 dom named[4997]: loading configuration: permission denied
Oct 30 17:04:35 dom named[4997]: exiting (due to fatal error)

我临时启用了用户绑定的登录,并确认该用户可以在 /var/log/bind/ 中创建和修改文件

请帮忙

upd:执行了 chmod 777 /var/log/bind - 同样的错误

答案1

听起来好像bind9由于其他原因可能不允许写入该文件夹。

检查 AppArmor 是否正在通过 运行aa-status

AppArmor 是 Linux 的另一种强制访问控制机制,与 SELinux 类似。实际上,您需要它,因为它可以防止应用程序被恶意利用。

如果是,请暂时禁用它以进行测试:

sudo systemctl stop apparmor
sudo systemctl disable apparmor

如果这解决了问题,那么您将需要更新bind9AppArmor 中的配置文件以允许其访问日志文件夹。

作为参考,AppArmor 配置文件存储在/etc/apparmor.d/

答案2

无需禁用 apparmor 或重新配置(假设您确实希望日志转到/var/log/bind)。

Debian 中的 Apparmor 已配置为允许读写访问/var/log/named(并指出您应改用 syslog)。/etc/apparmor.d/usr.sbin.named有关更多信息,请参阅。

创建文件夹为:

mkdir -m 775 -p /var/log/named  # can also use mode 770
chown root:bind /var/log/named

相关内容