BIND权限错误

我一直在尝试使用nsupdate来dynamic更新我的名称服务器logging。

当我尝试它时,我得到一个serverfail。 这是来自syslogs。

Nov 12 08:00:53 ps133045 named[14314]: client 78.72.53.42#50135: signer "www.mydomain.com" approved Nov 12 08:00:53 ps133045 named[14314]: client 78.72.53.42#50135: updating zone 'mydomain.com/IN': adding an RR at 'client$ Nov 12 08:00:53 ps133045 named[14314]: /etc/bind/zones/mydomain.com.zone.jnl: create: permission denied Nov 12 08:00:53 ps133045 named[14314]: client 78.72.53.42#50135: updating zone 'mydomain.com/IN': error: journal open fai$ 

所以我觉得这是权限,所以要testing我给/ var / named和/ etc / bind chmod 666

没有帮助,所以我创build了mydomain.com.zone.jnl文件和chmod 600它,并认为会这样做,我也做了chown绑定:绑定和root:绑定,但我仍然在两种情况下得到相同的错误。

现在我甚至不能重新启动绑定,因为这个错误

 Nov 12 08:40:10 ps133045 named[21169]: loading configuration from '/etc/bind/named.conf' Nov 12 08:40:10 ps133045 named[21169]: /etc/bind/named.conf.local:9: open: /var/named/dnskeys.conf: permission denied Nov 12 08:40:10 ps133045 named[21169]: loading configuration: permission denied Nov 12 08:40:10 ps133045 named[21169]: exiting (due to fatal error) 

我真的不明白这些权限错误,在这两种情况下,我已经尝试chmod 666的文件和chown的bind:bind或root:bind。 我仍然得到错误。

这是目录权限

在/ var /命名

 drw-rw-rw- 2 root bind 121 Nov 12 08:53 . drwxr-xr-x 15 root root 4.0K Nov 11 16:24 .. -rw------- 1 root root 59 Nov 11 16:48 Kwww.mydomain.com.+157.17183.key -rw------- 1 root root 165 Nov 11 16:49 Kwww.mydomain.com.+157.17183.private -rw------- 1 root bind 126 Nov 12 08:53 dnskeys.conf 

的/ etc /绑定

 drwxrwsrwx 3 root bind 4.0K Nov 11 17:31 . drwxr-xr-x 115 root root 8.0K Nov 10 04:59 .. -rw-r--r-- 1 root root 2.5K Oct 20 10:46 bind.keys -rw-r--r-- 1 root root 237 Oct 20 10:46 db.0 -rw-r--r-- 1 root root 271 Oct 20 10:46 db.127 -rw-r--r-- 1 root root 237 Oct 20 10:46 db.255 -rw-r--r-- 1 root root 353 Oct 20 10:46 db.empty -rw-r--r-- 1 root root 270 Oct 20 10:46 db.local -rw-r--r-- 1 root root 3.0K Oct 20 10:46 db.root -r--r--r-- 1 root bind 3 Nov 10 05:07 jam.sh -rw-r--r-- 1 root bind 463 Nov 11 05:15 named.conf -rw-r--r-- 1 root bind 490 Oct 20 10:46 named.conf.default-zones -rwxr-xr-x 1 root bind 503 Nov 12 09:01 named.conf.local -rwxr-xr-x 1 root bind 462 Nov 11 17:30 named.conf.local.bak -rw-r--r-- 1 root bind 572 Oct 20 10:46 named.conf.options -rw-r----- 1 bind bind 77 Nov 10 04:59 rndc.key drw-rwSrw- 2 root bind 109 Nov 12 08:26 zones -rw-r--r-- 1 root root 1.3K Oct 20 10:46 zones.rfc1918 

的/ etc /结合/区

 drw-rwSrw- 2 root bind 109 Nov 12 08:26 . drwxrwsrwx 3 root bind 4.0K Nov 11 17:31 .. -r--r--r-- 1 root bind 402 Nov 11 11:07 mydomain.com.zone -rw-rw-rw- 1 bind bind 0 Nov 12 08:26 mydomain.com.zone.jnl -r--r--r-- 1 root bind 377 Nov 11 11:06 rev.241.205.33.66.in-addr.arpa 

任何帮助或指导将不胜感激,在此先感谢!

错误信息实际上是不言自明的:

/etc/bind/named.conf.local:9:open:/var/named/dnskeys.conf:permission denied

named进程通常作为受限用户(可能是bind )运行,该用户无权访问文件dnskeys.conf (具有当前权限,该文件只能由用户root访问):

- rw ------- 1 root bind 126 Nov 12 08:53 dnskeys.conf

将该文件的权限更改为640,以便组bind具有读取权限,

 chmod g+r /var/named/dnskeys.conf 

或者将文件的所有者更改为运行named进程的用户:

 chown bind /var/named/dnskeys.conf 

正如其他人指出,你绝对应该使文件世界可读,更不可能世界写。

这看起来像一个AppArmor问题。 尝试将其设置为允许临时,看看问题是否消失。

默认情况下,绑定/命名守护进程没有权限写入 / etc中的区域文件。 它只能读取它们。 因此,nsupdate进程也不能写入它们。

如果您dynamic更新DNS,则应将区域文件存储在/ var / lib / bind中 – https://help.ubuntu.com/14.04/serverguide/dns-configuration.html#dns-primarymaster-configuration

Apt安装程序应该已经使用正确的权限和AppArmor上下文创build了该目录。

除了上面提到的文件系统级权限之外,还需要使用allow-update指令configurationbind以允许这些远程更新。

http://www.zytrax.com/books/dns/ch7/xfer.html