我在 Debian 12 上运行 BIND,我认为文件/文件夹权限存在问题。

当我包含“/home/$my_user/zone/named.conf”时出现此错误:

/etc/bind/named.conf.local:17: parsing failed: file not found

但是文件在那里,所以我认为是一个权限问题,我也有 apparmor 并且我已将以下行插入 /etc/apparmor.d/usr.sbin.named:

/home/$my_user/zone/** rw,
/home/$my_user/zone/ rw,

但似乎没有起到作用,我还在 /etc/apparmor.d/local 中名为 usr.sbin.named 的文件中添加了它,但没有任何变化,每次更改后我都会重新加载 apparmor,但如果我在 BIND 上添加上述包含,它不会重新启动。有人可以给我提示如何解决这个问题吗?谢谢,Alessandro

7

  • 2
    默认情况下,大多数 Linux 发行版都附带使用 chroot 的 ISC Bind 版本;因此您无法从 /home/ 访问文件;将您的区域数据放在指定的默认目录中,这样就好了(我对 Debian 不太熟悉,所以不太确定这是否正确)


    – 

  • 感谢您的回复@HBruijn,但我不能把它们放在那里,我需要把它们放在$my_user 主文件夹中,因为我需要让用户写入此文件以进行修改和重新加载 BIND,如果我把它们放在 /etc/bind/named 文件夹中,$my_user 就无法修改它们。我有一个独立的系统来管理意大利的审查网站,我需要尽快更新它们,我有它,我不会让 root ssh 进入我们的系统


    – 

  • 1
    您可以使用 sudo 授予典型的 root 权限以重新加载区域文件,并包含 sudo 文件权限以允许某些用户对特定文件进行 sudoedit – 但根据我的经验,允许人们直接编辑区域文件可以避免这种情况。这太容易出错,忽略更新序列等等。在我看来,最好有一个执行语法检查等的 Web 表单


    – 

  • @HBruijn 进行修改的不会是“真人”,而是由系统自动执行,我会考虑 sudo,因为我们的系统上还没有它。


    – 

  • 您甚至不需要 sudo,您可以配置 ACL 以允许编辑文件和 polkit 以允许用户重新加载绑定服务。


    – 

0