20.2. アクセス ACL の設定

ACL には、アクセス ACLデフォルト ACL と 2 つのタイプがあります。アクセス ACL とは、特定のファイルまたはディレクトリー用のアクセス制御リストです。デフォルト ACL は、ディレクトリーにのみ関連付けられます。ディレクトリー内のファイルがアクセス ACL を持たない場合は、そのディレクトリーにはデフォルト ACL のルールが適用されます。デフォルト ACL はオプションです。
ACL は以下のように設定できます。
  1. ユーザーごと
  2. グループごと
  3. 実効権 (effective rights) マスクの使用
  4. ファイルのユーザーグループに属しないユーザー用
setfacl ユーティリティーは、ファイルとディレクトリー用の ACL を設定します。-m オプションを使用すると、ファイルまたはディレクトリーの ACL の追加または修正を実行できます。
# setfacl -m rules files
ルール (rules) は、以下の形式で指定しなければなりません。複数のルールがカンマで区切られている場合は、それらのルールを同じコマンドに指定することができます。
u:uid:perms
ユーザー用のアクセス ACL を設定します。ユーザー名または UID を指定できます。ユーザーにはシステム上の任意の有効なユーザーを指定できます。
g:gid:perms
グループ用のアクセス ACL を設定します。グループ名または GID を指定できます。グループにはシステム上の任意の有効なグループを指定できます。
m:perms
実効権マスクを設定します。このマスクは所有グループのすべての権限とユーザーおよびグループのエントリーすべてを結合したものです。
o:perms
ファイル所有グループ内のユーザー以外のユーザー用にアクセス ACL を設定します。
権限 (perms) は、読み込み、書き込みおよび実行を表す rw、および x の文字の組み合わせで表示されます。
ファイルまたはディレクトリーにすでに ACL があり、setfacl コマンドが使用されている場合、追加のルールが既存の ACL に追加されるか、または既存のルールが修正されます。

例20.1 読み込みと書き込みの権限を付与する

たとえば、ユーザー「andrius」に読み込みと書き込みの権限を付与するには以下を実行します。
# setfacl -m u:andrius:rw /project/somefile
ユーザー、グループまたはその他からすべての権限を削除するには、-x オプションを使用して、いずれの権限も指定しないようにします。
# setfacl -x rules files

例20.2 すべての権限を削除する

たとえば、UID 500 のユーザーからすべての権限を削除するには以下を実行します。
# setfacl -x u:500 /project/somefile