
我想為 FreeBSD 11 系統啟用 ACL。根據FreeBSD 手冊這可以透過兩種方式完成:
透過使用掛載選項——
mount -o acls
透過修改超級塊——
tunefs -a enable
它說最好使用第二個選項,因為:
掛載時 ACL 標誌不能透過重新掛載(mount(8) -u)來更改,只能透過完整的 umount(8) 和全新的 mount(8) 來更改。這意味著啟動後無法在根檔案系統上啟用 ACL。這也意味著檔案系統一旦使用就無法更改其配置。
設定超級區塊標誌將導致檔案系統始終在啟用 ACL 的情況下掛載,即使沒有 fstab 條目或裝置重新排序也是如此。這可以防止在未啟用 ACL 的情況下意外掛載檔案系統,從而導致 ACL 執行不正確,進而導致安全性問題。
來自曲調手冊頁:
tunefs 實用程式旨在變更影響佈局策略的 UFS 檔案系統的動態參數。 tunefs 實用程式無法在活動檔案系統上執行。若要變更活動檔案系統,必須將其降級為唯讀或卸載。
問題是 rootfs (/) 無法卸載。
如何在根檔案系統上運行tunefs?
答案1
您可以強制以唯讀方式重新掛載檔案系統:
mount -fur /
tunefs -a enable /
reboot
該reboot
步驟似乎是必要的:首先,重新掛載讀寫 ( mount -uw /
) 不會獲取 ACL 啟用標誌,其次,重新掛載只讀將破壞想要寫入磁碟的所有內容(例如 syslogd),因此您最好在那時重新啟動。