如何為 chrooted BIND 設定日誌記錄子句?

如何為 chrooted BIND 設定日誌記錄子句?

這個問題有點類似這個但最有幫助的答案似乎是 Ubuntu 特定的,並且它在 OSX 10.6.8 上運行。

使用此日誌記錄子句:

logging {
         category default {
                 _default_log;
         };

         channel _default_log  {
                 file "/var/chroot/named/var/log/query.log";
                 severity info;
                 print-time yes;
         };
 };

我在 system.log 中收到此錯誤:

isc_log_open '/var/chroot/named/var/log/query.log' 失敗:找不到文件

本文介紹conf 檔案中bind9 的日誌記錄子句說:

檔案「path_name」是一個引號的字串,定義日誌檔案的絕對路徑,例如「/var/log/named/namedlog.log」。

但是conf位於監獄內部/var/chroot/named/etc/named.conf,我希望將日誌寫入/var/chroot/named/var/log/query.log監獄內部或/Library/Logs/named.log監獄外部(並且是日誌在chrooting之前指向的位置)。無論我能去哪工作都很好。

任何幫助深表感謝!

答案1

由於您的綁定在監獄 chroot 內運行,因此您的路徑應該是相對於它的。

對於您的 chroot 綁定,/目錄從 開始/var/chroot/named,因此您應該將檔案名稱更改為/var/log/query.log並確保綁定有權寫入/var/log

另外,您可以將日誌寫入這兩個檔案。如果上述變更成功,您可以在 chroot 之外使用以下命令將兩個檔案 (/var/chroot/named/var/log/query.log和) 連結到一個檔案:/Library/Logs/named.log

$ ln /var/chroot/named/var/log/query.log /Library/Logs/named.log

這樣做將在兩個位置為您提供相同的內容。但是,請注意,刪除一個文件不會刪除另一個文件,但清空它可以同時刪除兩個文件。因此,如果您使用logrotate或類似程序,則需要輪換這兩個檔案並確保每次都重新建立連結。

答案2

將指令中的檔案名稱改為 /var/log/query.log.....您位於以 /var/chroot/named 作為根的 chroot 區域。

相關內容