Isc-Dhcp

如何清除 dhcpd.leases?

  • February 27, 2019

我在 Ubuntu 14.04 系統上執行 DHCPD (isc-dhcp-4.2.4)。var/lib/dh​​cp/dhcpd.leases 文件變得非常大(350MB)。查看其中的歷史數據可以追溯到幾個月前,關於早已過期的租約。如何清除舊資訊?大概停止 dhcpd 並刪除文件是一個壞主意,因為它會忘記最近可能仍然相關的租約?

$$ edit $$顯然 dhcpd 應該每小時自動清除一次租約文件,但這對我來說並沒有發生。顯然這歸結為權限問題 - /var/lib/dh​​cp 目錄和內容由 root:root 擁有,但伺服器以 dhcpd:dhcpd 執行。我嘗試按如下方式更改所有權:-

sudo service isc-dhcp-server stop
sudo chown -R dhcpd:dhcpd /var/lib/dhcp/
sudo service isc-dhcp-server start

但在此之後目錄的所有權,dhcpd.leases 和 dhcpd.leases~ 恢復為 root:root。

那麼,如何區分目錄所有權與執行 dhcpd 程序以使自動清除工作的使用者:組?

從手冊man dhcpd.leases

為了防止租約數據庫無限制地增長,文件會時不時地重寫。首先,創建一個臨時租約數據庫並將所有已知的租約轉儲到其中。然後,舊的租賃數據庫被重命名/var/lib/dhcpd/dhcpd.leases~。最後,新寫入的租賃數據庫被移動到位。

當目錄上的文件系統權限/var/lib/dhcpd阻止非特權使用者 dhcpd 執行時可能會失敗的 AFAIK 在那裡創建臨時數據庫,然後租約文件將繼續增長。

將所有權更改/var/lib/dhcpd為 dhcpd 使用者。

引用自:https://serverfault.com/questions/955966