ACLにはアクセスACL と デフォルトACLの2種類があります。 アクセスACLは特定ファイルやディレクトリのアクセス制御リストです。 デフォルトACLはディレクトリのみに関係し、ディレクトリ内のファイルがACLにアクセス できない場合、デフォルトACLのルールをそのディレクトリに適用します。 デフォルトACLの設定は任意です。
ACLは次のように設定します。
ユーザーごと
グループごと
有効な権利マスクを経由
ファイルのユーザーグループに含まれていないユーザー
setfacl ユーティリティでファイルとディレクトリのACLを 設定します。-mオプションにてファイル又はディレクトリの ACLを追加又は変更して下さい。
setfacl -m <rules><files>
次のフォーマットにてルール(<rules>)を指定して 下さい。同じコマンドにてルールを複数指定する場合はコンマで区切って下さい。
ユーザーのアクセルACLを設定します。 ユーザー名、又はUIDを指定できます。 システム上で有効なユーザーを指定して下さい。
グループのアクセルACLを設定します。 グループ名、又はGIDを指定できます。 システム上で有効なグループを指定して下さい。
有効な権利マスクを設定します。 このマスクはグループが有するすべてのパーミッションと全ユーザー/全グループを連結します。
ファイルに対するグループのユーザーでないユーザーのアクセスACLを設定します。
余白は無視されます。書き込み、読み取り、実行のパーミッション (<perms>) は r、 w、 x 文字の組み合わせでなければなりません。
ファイル、又はディレクトリのACLが既に存在し、setfaclコマンドが使用されている場合、既存のACLにルールを追加したり、 既存ルールを変更することができます。
読み取りと書き込みのパーミッションをユーザー andrius に与える場合の例は次の通りです。
setfacl -m u:andrius:rw /project/somefile
ユーザー、グループ、その他のパーミッションを全て解除する場合は、-x オプションを使い、パーミッションを指定しないでください。
setfacl -x <rules><files>
UID 500 のユーザーからすべてのパーミッションを解除する場合の例は次の通りです。
setfacl -x u:500 /project/somefile