如何在 FreeBSD 中的根文件系统上运行 Tunef?

如何在 FreeBSD 中的根文件系统上运行 Tunef?

我想为 FreeBSD 11 系统启用 ACL。根据FreeBSD 手册这可以通过两种方式完成:

  1. 通过使用挂载选项——mount -o acls

  2. 通过修改超级块——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),因此您最好在那时重新启动。

相关内容