Claro que irá falhar, uma vez que você não permitiu as permissões de leitura / gravação / execução em /etc/bind/named.conf
. Tente usar chmod ugo+r /etc/bind/named.conf && chown root /etc/bind/named.conf
e tente novamente.
Explicando por que
Vamos ver como o nome lê o arquivo.
sudo strace -f /usr/sbin/named -fg -d 10 2> named
Isto mostrará todas as chamadas sobre arquivos que o named / bind faz. Agora processando:
grep conf named
read(5, "#\n# OpenSSL example configuratio"..., 4096) = 4096
write(2, "08-Feb-2014 14:01:42.372 built w"..., 39108-Feb-2014 14:01:42.372 built with '--prefix=/usr' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--sysconfdir=/etc/bind' '--localstatedir=/var' '--enable-threads' '--enable-largefile' '--with-libtool' '--enable-shared' '--enable-static' '--with-openssl=/usr' '--with-gssapi=/usr' '--with-gnu-ld' '--with-geoip=/usr' '--enable-ipv6' 'CFLAGS=-fno-strict-aliasing -DDIG_SIGCHASE -O2'
[pid 25348] write(2, "08-Feb-2014 14:01:42.395 loading"..., 7508-Feb-2014 14:01:42.395 loading configuration from '/etc/bind/named.conf'
[pid 25348] open("/etc/bind/named.conf", O_RDONLY|O_LARGEFILE) = -1 EACCES (Permission denied)
[pid 25348] write(2, "08-Feb-2014 14:01:42.396 open: /"..., 7108-Feb-2014 14:01:42.396 open: /etc/bind/named.conf: permission denied
[pid 25348] write(2, "08-Feb-2014 14:01:42.399 load_co"..., 6308-Feb-2014 14:01:42.399 load_configuration: permission denied
[pid 25348] write(2, "08-Feb-2014 14:01:42.400 loading"..., 6608-Feb-2014 14:01:42.400 loading configuration: permission denied
Nomeado tenta fazer uma chamada aberta como somente leitura e falha com -1 EACCES
, pois o arquivo não tem permissões de leitura. Isso está documentado nas páginas do manual open () :
EACCES
Search permission is denied on a component of the path prefix, or the file exists and the permissions specified by oflag are denied, or the file does not exist and write permission is denied for the parent directory of the file to be created, or O_TRUNC is specified and write permission is denied.
Resumo: que o apache ou qualquer outro processo funciona não significa que bind / named will.
BTW, o bind em execução como root é um exagero e não é necessário.