2.2. アクセスACLの設定

2.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にルールを追加したり、 既存ルールを変更することができます。

読み取りと書き込みのパーミッションをユーザー andrius に与える場合の例は次の通りです。

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

ユーザー、グループ、その他のパーミッションを全て解除する場合は、-x オプションを使い、パーミッションを指定しないでください。

        setfacl -x <rules><files>
      

UID 500 のユーザーからすべてのパーミッションを解除する場合の例は次の通りです。

        setfacl -x u:500 /project/somefile