Linux
無法獲取官方 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)。我的最後一次嘗試表明 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 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
我應該使用什麼類型和尺寸的槍支來解決這個問題?我更喜歡帶有自動彈藥的東西,最壞的情況是,它應該能夠放在我的肩膀上。我當然願意接受建議。
想發布這個以防其他人有同樣的問題:
始終在禁用 SELinux 後立即重新啟動,而不是等待一天。
BIND 現在啟動沒有問題。我現在哭著睡著了。
在基於 Redhat 的系統(很可能是其他系統)中,/etc/sysconfig/named 可以定義 ROOTDIR=/var/named/chroot 執行您認為的操作。bind-chroot 包只在 /var/named/chroot 下建立目錄結構。如果在那裡定義了 ROOTDIR 並且未安裝 bind-chroot,我希望看到該錯誤。
-戴夫