You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Terraform创建A记录时出现Bind9权限错误求助

Bind9 Terraform更新A记录时权限错误解决办法

问题场景

Bind9域名服务器运行正常,但用Terraform自动化创建A记录时触发权限错误,journal -xe里的日志如下:

Jul 05 19:28:10 Bind9DNS named[2051]: client @0x7f34300e4170 X.X.X.X#64718/key terraformkey: updating zone 'example.com/IN': adding an RR at 'www.example.com' A X.X.X.X
Jul 05 19:28:10 Bind9DNS named[2051]: /etc/bind/zones/forward.example.com.jnl: create: permission denied
Jul 05 19:28:10 Bind9DNS named[2051]: client @0x7f34300e4170 X.X.X.X#64718/key terraformkey: updating zone 'example.com/IN': error: journal open failed: unexpected error
Jul 05 19:28:10 Bind9DNS named[2051]: client @0x7f34300e4170 X.X.X.X#64719: update 'example.com/IN' denied

问题根源

Bind9动态更新区域时会自动生成.jnl后缀的journal文件记录变更,但named进程没有权限在/etc/bind/zones/目录下创建这个文件,直接导致更新失败。

解决步骤

  1. 确认Bind9运行用户
    先查清楚named进程所属的用户:

    ps aux | grep named
    

    大部分系统默认是bind或named用户。

  2. 调整目录权限
    给/etc/bind/zones/目录设置正确的所有者和权限:

    sudo chown -R bind:bind /etc/bind/zones/
    sudo chmod -R 750 /etc/bind/zones/
    

    要是你的named用户是named,把命令里的bind换成named就行。

  3. 处理SELinux(如果开启的话)
    系统开了SELinux的话,得把目录的SELinux上下文恢复默认:

    sudo restorecon -Rv /etc/bind/zones/
    

    这条命令能让named进程正常读写该目录。

  4. 重启Bind9服务
    改完权限后重启服务生效:

    sudo systemctl restart named
    
  5. 验证更新
    重新跑Terraform的变更命令,确认A记录能正常创建:

    terraform apply
    

内容的提问来源于stack exchange,提问作者Anthony

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 07:52:45