web-dev-qa-db-ja.com

bind-スレーブゾーンファイルの書き込み中に許可が拒否されました

システム:Ubuntu 16.04.3 LTS

あらすじ:

#chmod 777 /etc/bind/slave
#chmod 777 /etc/bind
#service bind9 restart
#tail /var/log/syslog | grep dump                                                                                       
Aug 23 07:14:45 appserver named[25251]: dumping master file: /etc/bind/slave/tmp-IDIdwXAG2I: open: permission denied

ここで何が起きてるの???

1
nagylzs

何が起こっているのかというと、namedプロセスは/etc/bind/slave/ディレクトリにファイルを作成できません。

まず第一に、/etcは、通常のサービスが書き込みアクセス権を持つための、実際にはかなり異例の場所です。
通常、データのタイプに応じて、/var/libまたは/var/cacheの下のディレクトリを使用します。

あなたの非常に寛大な許可(まったく良い考えではない)が役に立たない理由に関して、私は推測しますApparmor(Ubuntuの可能性が高い)またはSELinuxはBINDのプロファイルを持っていますファイルパスがnamedによって書き込み可能である必要がある合理的な仮定(上記を参照)に基づいています。これは、ファイルシステムのアクセス許可に加えて適用されます。

書き込み可能なファイルをより適切な場所に移動することをお勧めします。

2

上記の答えは、原因をうまく説明しています。 /etc/bind/named.conf.optionsで定義された相対パスがあります。これはdirectory "/var/cache/bindです。

したがって、私が提案するのは、スレーブゾーンフィールドをnamed.conf.localファイルで定義されているより適切なディレクトリに保存し、ディレクトリの所有権をバインドグループに付与するか、書き込み権限をバインドグループに付与することです。

お気に入り:

mkdir /var/cache/bind/slaves
chown bind:bind /var/cache/bind/slaves
0
Yang Yong