
FreeBSD 11システムでACLを有効にしたいのですが、FreeBSD ハンドブックこれは 2 つの方法で実行できます。
マウントオプションを使用することで --
mount -o acls
スーパーブロックを変更することで --
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 など) が壊れるため、その時点で再起動した方がよいでしょう。