4.3. ファイルシステムアクセス制御リスト

寄稿: Tom Rhodes.

スナップショットのようなファイルシステムの拡張と連携して、 FreeBSD 5.0 以降ではファイルシステムアクセス制御リスト (ACLs) によるセキュリティを提供しています。

アクセス制御リストは、標準的な UNIX のパーミッションモデルを、 非常に互換性の高い (POSIX.1e) やり方で拡張しています。 この機能は、管理者がより洗練されたセキュリティモデルを利用し、 その恩恵を受けられるようにします。

UFS ファイルシステム用の ACL サポートを有効にするには、 次のオプションをカーネルに組み込まなければなりません。

options UFS_ACL

もしこのオプションが組み込まれていなければ、ACLs に対応したファイルシステムをマウントしようとすると、 警告が表示されます。このオプションは GENERIC カーネルに含まれています。ACLs は、ファイルシステムの拡張属性が有効になっていることに依存しています。 拡張属性は、次世代 UNIX ファイルシステムである UFS2 でネイティブ対応されています。

注意: UFS1 に拡張属性を付すように設定するのは、 UFS2 よりも高いレベルの管理オーバヘッドが必要になります。 また、UFS2 における拡張属性のパフォーマンスも大きく上がっています。 その結果、アクセス制御リストを利用する上では、一般的には UFS1 よりも UFS2 の方がおすすめです。

ACLs は、マウント時の管理フラグ acls で有効にされます。これは /etc/fstab に記述できます。 マウント時のフラグは、tunefs(8) を使って、ファイルシステムヘッダのスーパブロックにある ACLs フラグを変更するという方法で、 常に自動で設定されるようになります。一般的には、 下記の理由からスーパブロックフラグを使う方がよいでしょう。

注意: ACLs の動作を変更して、まったく新たに mount(8) を行わなくてもフラグを有効にできるようにすることも可能でしょう。 しかし、我々は、うっかり ACLs を有効にしないでマウントしてしまうのを防ぐようにした方が望ましいと考えました。 ACLs を有効にし、その後無効にしてから、 拡張属性を取り消さないでまた有効にしてしまうと、 鬱陶しい状態に自分で入り込んでしまえるからです。 一般的には、一度ファイルシステムで ACLs を有効にしたら、無効にすべきではありません。そうしてしまうと、 ファイル保護がシステムのユーザの意図と齟齬をきたす可能性があるばかりか、 ACLs を再度有効にすると、 それまでパーミッションが変更されてきたファイルに古い ACLs を割り当ててしまい、 予想しない動作につながることも考えられます。

ACLs を有効にしたファイルシステムは、 パーミッション設定の表示に + (プラス) 記号がつきます。例えば、次のようになります。

drwx------  2 robert  robert  512 Dec 27 11:54 private
drwxrwx---+ 2 robert  robert  512 Dec 23 10:57 directory1
drwxrwx---+ 2 robert  robert  512 Dec 22 10:20 directory2
drwxrwx---+ 2 robert  robert  512 Dec 27 11:57 directory3
drwxr-xr-x  2 robert  robert  512 Nov 10 11:54 public_html

ここでは、ディレクトリ directory1, directory2 および directory3 のすべてで ACLs が働いています。 ディレクトリ public_html は対象外です。

本文書、および他の文書は ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ からダウンロードできます。

FreeBSD に関する質問がある場合には、ドキュメント を読んだ上で <questions@FreeBSD.org> まで (英語で) 連絡してください。
本文書に関する質問については、<doc@FreeBSD.org> まで電子メールを (英語で) 送ってください。