chacl(1) ファイルまたはディレクトリのアクセス制御リスト (Access Control List) を変更する

書式

chacl acl pathname...
chacl -b acl dacl pathname...
chacl -d dacl pathname...
chacl -R pathname...
chacl -D pathname...
chacl -B pathname...
chacl -l pathname...
chacl -r pathname...

説明

chacl は IRIX 互換のコマンドであり、 XFS や IRIX で使い慣れているユーザのために保守されている。 アクセス制御リスト (ACL) について記述している (撤回されたドラフト) POSIX 1003.1e 規格に、 より準拠したツールについての説明は、 「関連項目」のセクションを参照すること。

chacl はファイルまたはディレクトリの ACL を変更する。 指定された ACL は pathname 引き数の各ファイルに適用される。

各 ACL は文字列であり、 acl_from_text(3) ルーチンを使って解釈される。 これらの文字列は、tag:name:perm という形式の コンマで区切られた節 (clause) で構成される。 ここで tag は以下の何れかである:

"user" (または "u")
エントリがユーザ ACL エントリであることを表す。
"group" (または "g")
エントリがグループ ACL エントリであることを表す。
"other" (または "o")
エントリがその他の ACL エントリであることを表す。
"mask" (または "m")
エントリがマスク ACL エントリであることを表す。

name は ACL エントリのユーザ名まはたグループ名を表す文字列である。 ユーザまたはグループの ACL エントリにおいて name が空の場合は、 それぞれファイルの所有者とファイルのグループを表す。 perm は文字列 "rwx" であり、 各エントリはそのタイプのアクセスを許可しないことを示すために "-" で置き換えることができる。 例えば、"r-x", "--x", "---" のように書ける。

オプション

-b
変更する ACL が 2 つあることを表す。 1 つ目はファイルアクセス ACL であり、 2 つ目はディレクトリのデフォルト ACL である。
-d
ディレクトリのデフォルト ACL のみを設定するのに使われる。
-R
ファイルアクセス ACL のみを削除する。
-D
ディレクトリのデフォルト ACL のみを削除する。
-B
全ての ACL を削除する。
-l
アクセス ACL と (もし存在するならば) 指定されたファイルまたはディレクトリに 関連づけられているデフォルト ACL の一覧を表示する。 このオプションは XFS を Linux に移植するときに追加され、 IRIX とは互換性はない。
-r
pathname をルートとする各サブツリーに対して、 再帰的にアクセス ACL を設定する。 このオプションは XFS を Linux に移植するときに追加され、 IRIX とは互換性はない。

最低限の ACL:

  chacl u::rwx,g::r-x,o::r-- file

ファイルの所有者は "rwx"、ファイルのグループは読み込みと実行、 その他のユーザはファイルの読み込みアクセスのみという許可を持つように、 ファイル ACL が設定される。

以下は最低限の ACL ではない。 つまり、ファイルの所有者または所有グループ以外の ユーザまたはグループを指定する場合は、 マスクエントリを持たなければならない:

  chacl u::rwx,g::r-x,o::r--,u:bob:r--,m::r-x file1 file2

newdir 対して olddir と同じ デフォルト ACL とアクセス ACL を設定するには、 以下のように入力すればよい:

  chacl -b `chacl -l olddir | \
      sed -e 's/.*\[//' -e 's#/# #' -e 's/]$//'` newdir

警告

chacl は既存の ACL を置き換えることができる。 エントリを追加・削除する場合は、 最初に chacl -l を実行して既存の ACL を取得し、 chacl の引き数を作るためにその出力を使うこと。

ファイルの許可 (permission) ビットを変更すると、 ファイルアクセス ACL の設定が変更される (chmod(1) を参照)。 しかし、ファイル作成モードマスク (umask(1) を参照) は、ディレクトリのデフォルト ACL によって作成された ファイルのアクセス ACL 設定には影響しない。

ACL はファイルシステムの拡張属性であるので、 一般的なアーカイブユーティリティでは、通常はアーカイブやリストアされない。 拡張属性についての詳しい情報は attr(5) を参照すること。 XFS で拡張属性をバックアップする方法については、 xfsdump(8) を参照すること。