![在 named.conf 中使用 include 会返回未找到文件,尽管文件确实存在](https://linux22.com/image/793422/%E5%9C%A8%20named.conf%20%E4%B8%AD%E4%BD%BF%E7%94%A8%20include%20%E4%BC%9A%E8%BF%94%E5%9B%9E%E6%9C%AA%E6%89%BE%E5%88%B0%E6%96%87%E4%BB%B6%EF%BC%8C%E5%B0%BD%E7%AE%A1%E6%96%87%E4%BB%B6%E7%A1%AE%E5%AE%9E%E5%AD%98%E5%9C%A8.png)
我有一个运行良好的命名服务,但是当我尝试使用额外的“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 内核安全模块,那么您将需要修改这些设置以确保可以读取该路径。