我有一个运行良好的命名服务,但是当我尝试使用额外的“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 内核安全模块,那么您将需要修改这些设置以确保可以读取该路径。