无法取得官方的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用户通过bashlogin,从根目录命名,并检查我实际上能够成功/ cat /var/named/named.root.hints 。 (是的,别担心,我把壳改回nologin)。

我最后的努力表明,BIND能够在named用户帐户下运行,并启动就好了,如果手动完成的话:

  [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 xyzin-addr.arpa/IN/internal: loaded serial 1 03-Nov-2009 16:31:02.044 zone xyz/IN/internal: loaded serial 2 03-Nov-2009 16:31:02.045 running 

我应该用什么types和尺寸的枪支来解决这个问题? 我更喜欢有自动弹药的东西,而最坏的情况下,它应该能够适应我的肩膀。 当然,我很乐意提供build议。

在基于Redhat的系统(很可能是其他)中,/ etc / sysconfig / named可以定义ROOTDIR = / var / named / chroot,它可以完成你认为它的工作。 bind-chroot包只设置/ var / named / chroot下的目录结构。 如果在那里定义ROOTDIR,而bind-chroot没有安装,我希望看到这个错误。

戴夫

想要发布这个以防其他人有相同的问题:

在禁用SELinux之后总是立即重启,而不是等一天。

BIND现在开始没有问题。 我现在正在抽泣着睡觉。