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

BUK*_*TOP 2 permissions debian bind debian-buster

刚刚升级了 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;
    };
Run Code Online (Sandbox Code Playgroud)

一切正常,直到升级。这是目录:

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
Run Code Online (Sandbox Code Playgroud)

但有这个:

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)
Run Code Online (Sandbox Code Playgroud)

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

请帮忙

upd: chmod 777 /var/log/bind - 相同的错误

t3d*_*ftw 5

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

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

AppArmor 是 Linux 的另一种强制访问控制机制,与 SELinux 相当。实际上,您希望它存在,因为它可以防止应用程序在被利用时被恶意使用。

如果是的话,暂时禁用它来测试:

sudo systemctl stop apparmor
sudo systemctl disable apparmor
Run Code Online (Sandbox Code Playgroud)

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

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