无法获取官方 CentOS 5.4 BIND 包来启动

无法获取官方 CentOS 5.4 BIND 包来启动

昨天,我在我的一台服务器上安装了 CentOS 5.4,但官方的 BIND/named 包似乎无法启动,原因我自己也不知道。

事情的经过如下:

    [root@hal init.d]# service named start
    Starting named: 
    Error in named configuration:
    /etc/named.conf:57: open: named.root.hints: permission denied
                                                       [FAILED]

有问题的行,带有上下文的目录选项:

    // further up in the file:
        directory "/var/named";
    // line 57:
        include "named.root.hints";

和您一样,我的第一反应是检查 /var/named/named.root.hints、/var/named 和 /var 的权限,以确保用户named能够读取它。以下是每个级别的权限:

    drwxr-xr-x 19 root root  4096 Nov  3 02:05 var
    drwxr-x---  5 root named 4096 Nov  3 02:36 named
    -rw-r--r-- 1 named named  524 Mar 29  2006 named.root.hints

权限方面一切似乎都很好。如果/var/named目录可由命名用户写入,则会发生相同的错误。我甚至暂时允许用户named通过 bash 登录,su从 root 切换到命名,并检查我实际上能够cat /var/named/named.root.hints成功。(是的,别担心:我将 shell 改回了 nologin)。

named我上次的努力表明,如果手动操作,BIND 能够在用户帐户下运行并正常启动:

    [root@hal ~]# named -u named -g
    03-Nov-2009 16:31:02.021 starting BIND 9.3.6-P1-RedHat-9.3.6-4.P1.el5 -u named -g
    03-Nov-2009 16:31:02.021 adjusted limit on open files from 1024 to 1048576
    03-Nov-2009 16:31:02.021 found 2 CPUs, using 2 worker threads
    03-Nov-2009 16:31:02.021 using up to 4096 sockets
    03-Nov-2009 16:31:02.028 loading configuration from '/etc/named.conf'
    03-Nov-2009 16:31:02.030 using default UDP/IPv4 port range: [1024, 65535]
    03-Nov-2009 16:31:02.031 using default UDP/IPv6 port range: [1024, 65535]
    03-Nov-2009 16:31:02.034 listening on IPv4 interface lo, 127.0.0.1#53
    03-Nov-2009 16:31:02.034 listening on IPv4 interface eth0, 10.0.0.5#53
    03-Nov-2009 16:31:02.034 listening on IPv4 interface eth1, ww.xx.yy.zz#53
    03-Nov-2009 16:31:02.040 command channel listening on 127.0.0.1#953
    03-Nov-2009 16:31:02.040 command channel listening on ::1#953
    03-Nov-2009 16:31:02.040 ignoring config file logging statement due to -g option
    03-Nov-2009 16:31:02.041 zone 0.in-addr.arpa/IN/localhost_resolver: loaded serial 42
    03-Nov-2009 16:31:02.042 zone 0.0.127.in-addr.arpa/IN/localhost_resolver: loaded serial 1997022700
    03-Nov-2009 16:31:02.042 zone 255.in-addr.arpa/IN/localhost_resolver: loaded serial 42
    03-Nov-2009 16:31:02.042 zone 0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa/IN/localhost_resolver: loaded serial 1997022700
    03-Nov-2009 16:31:02.043 zone localdomain/IN/localhost_resolver: loaded serial 42
    03-Nov-2009 16:31:02.043 zone localhost/IN/localhost_resolver: loaded serial 42
    03-Nov-2009 16:31:02.043 zone x.y.z.in-addr.arpa/IN/internal: loaded serial 1
    03-Nov-2009 16:31:02.044 zone x.y.z/IN/internal: loaded serial 2
    03-Nov-2009 16:31:02.045 running

我应该使用什么类型和尺寸的枪支来解决这个问题?我更喜欢自动弹药的枪支,最差的情况下,它应该能放在我的肩膀上。当然,我愿意接受建议。

答案1

在基于 Redhat 的系统(很可能是其他系统)中,/etc/sysconfig/named 可以定义 ROOTDIR=/var/named/chroot,其作用正如您所想。bind-chroot 包仅在 /var/named/chroot 下设置目录结构。如果在那里定义了 ROOTDIR 并且未安装 bind-chroot,我预计会看到该错误。

-戴夫

答案2

想发布这个以防其他人遇到同样的问题:

禁用 SELinux 后始终立即重新启动,而不是等待一天。


BIND 现在可以顺利启动了。我现在哭着入睡了。

相关内容