在 named.conf 中使用 include 会返回未找到文件,尽管文件确实存在

在 named.conf 中使用 include 会返回未找到文件,尽管文件确实存在

我有一个运行良好的命名服务,但是当我尝试使用额外的“include”语句时,它不起作用。

我正在使用 Linux 服务器,在 CentOS 和 AlmaLinux 中遇到了同样的问题。

我的named.conf中有一个简单的“include”语句:

include "/var/named/chroot/etc/secondary.conf";

当我启动命名时它返回错误

/etc/named.conf:39: open: /var/named/chroot/etc/secondary.conf: file not found

该文件存在。

我试图更改文件的位置、权限、名称等,但它仍然回答同样的错误。

您对问题出在哪里有任何想法吗?如果您能提供一些帮助,我将非常感激。

配置很简单,但只有当我引入最后一个包含时它才会失败,您可以在这里阅读:

options 
      { allow-recursion { 
                 localnets; 
       }; 
       include "/etc/named-user-options.conf"; 
       directory "/var"; 
       pid-file "/var/run/named/named.pid"; 
};

controls { 
           inet 127.0.0.1 port 953 
            allow { 127.0.0.1; } keys { "rndc-key"; }; 
};

zone "." { 
          type hint; 
          file "named.root"; 
};

zone "0.0.127.IN-ADDR.ARPA" { 
        type master; 
        file "localhost.rev"; 
};

include "/var/named/chroot/etc/secondary.conf";

答案1

如果您在 chroot 下运行,那么您需要删除引用该部分。

bind9 读取命令行开关,执行chroot,然后读取配置文件。

因此,您需要删除引用 chroot 路径的部分,然后尝试/etc/secondary.conf

如果您还运行某些 Linux 内核安全模块,那么您将需要修改这些设置以确保可以读取该路径。

相关内容