我想为 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),因此您最好在那时重新启动。