8.2. アクセスACLの設定

ACLにはアクセスACLデフォルトACLの2種類があります。 アクセスACLは特定ファイルやディレクトリのアクセス制御リストです。 デフォルトACLはディレクトリのみに関係し、ディレクトリ内のファイルがACLにアクセス できない場合、デフォルトACLのルールをそのディレクトリに適用します。 デフォルトACLの設定は任意です。

ACLは次のように設定します。

  1. ユーザーごと

  2. グループごと

  3. 有効な権利マスクを経由

  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>) はrwx文字の組み合わせでなければなりません。

ファイル、又はディレクトリのACLが既に存在し、setfaclコマンドが使用されている場合、既存のACLにルールを追加したり、 既存ルールを変更することができます。

読み取りと書き込み許可をユーザー tfox に与える場合の例は次の通りです。

setfacl -m u:tfox:rw /project/somefile

ユーザーやグループなどの許可を全て解除する場合は、-x オプションを使い、 許可の指定を解除して下さい。

setfacl -x <rules> <files>

ユーザー UID 500 の許可を全て解除する場合の例は次の通りです。

setfacl -x u:500 /project/somefile