FreeBSD のルートファイルシステムで Tunefs を実行するにはどうすればいいですか?

FreeBSD のルートファイルシステムで Tunefs を実行するにはどうすればいいですか?

FreeBSD 11システムでACLを有効にしたいのですが、FreeBSD ハンドブックこれは 2 つの方法で実行できます。

  1. マウントオプションを使用することで --mount -o acls

  2. スーパーブロックを変更することで --tunefs -a enable

次の理由から、2 番目のオプションを使用することが望ましいと言われています。

マウント時の ACL フラグは再マウント (mount(8) -u) では変更できません。変更するには、完全な umount(8) と新規マウント (8) を実行する必要があります。つまり、起動後にルート ファイル システムで ACL を有効にすることができません。また、ファイル システムの使用を開始すると、その配置を変更できなくなります。

スーパーブロック フラグを設定すると、fstab エントリがない場合やデバイスの順序が変更された場合でも、ファイル システムは常に ACL を有効にしてマウントされます。これにより、ACL を有効にせずにファイル システムを誤ってマウントすることが防止されます。ACL が有効になっていないと、ACL が不適切に適用され、セキュリティ上の問題が発生する可能性があります。

チューンフスからマニュアルページ:

tunefs ユーティリティは、レイアウト ポリシーに影響する UFS ファイル システムの動的パラメータを変更するように設計されています。tunefs ユーティリティは、アクティブなファイル システムでは実行できません。アクティブなファイル システムを変更するには、読み取り専用にダウングレードするか、マウント解除する必要があります。

問題は、rootfs (/) をアンマウントできないことです。

ルートファイルシステムで tunefs を実行するにはどうすればよいですか?

答え1

ファイルシステムを強制的に読み取り専用で再マウントできます。

mount -fur /
tunefs -a enable /
reboot

このreboot手順は必要なようです。まず、読み取り/書き込み ( mount -uw /) を再マウントすると ACL 有効化フラグが取得されません。次に、読み取り専用で再マウントすると、ディスクに書き込もうとしたすべてのもの (syslogd など) が壊れるため、その時点で再起動した方がよいでしょう。

関連情報