スポンサーリンク

SETFACL(1) FreeBSD 一般コマンドマニュアル SETFACL(1)

名称

setfacl − ACL 情報の設定

書式

setfacl [−bdhkn] [−m entries] [−M file1] [−x entries] [−X file1] [file ...]

解説

setfacl ユーティリティは指定されたファイルに対し、裁量的なアクセス制御情 報を設定します。

次のオプションが使用可能です:

       −b

必須の 3 エントリを除き、全 ACL エントリを削除します。 ACL が ‘‘mask’’ エントリを含む場合、最終的な ACL 中の ‘‘group’’ エントリ のパーミッションは、現在の ACL における ‘‘group’’ と ‘‘mask’’ の 両方を組み合わせたパーミッションになります。

−d
アクセス ACL の代りに、ディレクトリのデフォルト ACL に対し、操作 が適用されます。現時点では、ディレクトリのみがデフォルト ACL を保 持可能です。

−h
操作対象がシンボリックリンクの場合、リンクを辿るのではなく、シン ボリックリンク自身を操作します。

−k
指定されたファイルのデフォルト ACL エントリを削除します。指定され たファイルがデフォルト ACL エントリを持たない場合でも、エラーとは みなされません。指定されたファイルがデフォルトエントリを持ち得な い場合 (すなわちディレクトリではない場合)、エラーが報告されます。

−m entries
entries
で指定される ACL エントリにて、新規エントリの追加と既存の エントリの修正を行うことにより、指定されたファイルの ACL エントリ を修正します。

−M file
file
ファイル中で指定される ACL エントリにて、新規エントリの追加 と既存のエントリの修正を行うことにより、指定されたファイルの ACL エントリを修正します。 file の場合、入力は標準入力から得られ ます。

−n
ACL mask エントリに関するパーミッションを再計算しません。

−x entries
指定されたファイルのアクセス ACL またはデフォルト ACL から、 entries で指定される ACL エントリを削除します。

−X file
指定されたファイルのアクセス ACL またはデフォルト ACL から、 file ファイル中で指定される ACL エントリを削除します。

上述のオプションは、コマンド行で指定された順番に評価されます。

ACL エントリ

ひとつの ACL エントリには、コロンで区切られた次の 3 個の欄があります。そ れらは、ACL タグ、ACL 修飾子、裁量的なアクセスパーミッションであり、次の 意味です:

       ACL タグ

‘‘user’’ または ‘u’ は、ファイル所有者または指定されたユーザに許 可されたアクセスを指定します。 ‘‘group’’ または ‘g’ は、ファイル 所有グループまたは指定されたグループに許可されたアクセスを指定し ます。 ‘‘other’’ または ‘o’ は、いかなる user および group に適合 しないプロセスに許可されたアクセスを指定します。 ‘‘mask’’ または ‘m’ は、ファイル所有者 ‘‘user’’ ACL エントリおよび ‘‘other’’ ACL エントリ以外のすべての ACL エントリに対して許可される、最大アクセ スを指定します。

ACL 修飾子
ACL 修飾子欄は、ある ACL エントリのユーザまたはグループを記述しま す。それは次のうちのどれかひとつです: UID かユーザ名、GID かグ ループ名、または空。 ‘‘user’’ ACL エントリに対しては、空の欄は ファイル所有者に対して許可されるアクセスを指定します。 ‘‘group’’ ACL エントリに対しては、空の欄はファイル所有グループに対して許可 されるアクセスを指定します。 ‘‘mask’’ および ‘‘other’’ の ACL エ ントリは、この欄を使用しません。

アクセスパーミッション
アクセスパーミッション欄はアクセスパーミッション欄は、次の文字の それぞれを最大ひとつまで保持可能です: ‘r’, ‘w’, ‘x’ は、それぞ れ、読み取り・書き込み・実行のパーミッションを設定します。これら の文字を取り除いたり ‘-’ 文字で置き換えることで、アクセス無しを示 せます。

‘‘mask’’ ACL エントリは、デフォルトの ‘‘user’’, ‘‘group’’, ‘‘other’’ ACL エントリ以外では必須です。 −n オプションが指定されず、 ‘‘mask’’ ACL エン トリが指定されない場合、 setfacl ユーティリティは、最終的な ACL エントリ 中のすべての ‘‘group’’ ACL エントリのパーミッションの和からなる ‘‘mask’’ ACL エントリを使用します。

ファイルシステムオブジェクトモードに作用するという伝統的な POSIX インタ フェースは、 POSIX.1e の拡張 ACL の登場によってセマンティクスが変更されま した。オブジェクトのアクセス ACL にマスクエントリが存在する場合、マクスエ ントリはグループビットの代りに使用されます。この動作は、 stat(1)ls(1) といったプログラムで行われます。マスクエントリを持つオブジェクトのモード が変更される場合、グループビットに対する変更は、実際にはマスクエントリに 対して適用されます。これらのセマンティクスは、多くのアプリケーション互換 性を提供します。すなわち、追加のユーザ・グループエントリに与えられる実効 権限は制限され、 ACL の代りにモードを変更しようとするアプリケーションには 保守的な動作に見えます。この動作は、 chmod(1) といったプログラムで行われ ます。

−M または −X のオプションを使用してファイルから適用される ACL エントリ は、次の形式です: 前述のように 1 ACL エントリあたり 1 行、空白は無視、 ‘#’ の後のテキストは無視 (コメント)。

ACL エントリが評価されるとき、アクセスチェックアルゴリズムは次の順番で ACL エントリをチェックします: ファイル所有者、 ‘‘user’’ ACL エントリ、 ファイル所有グループ、 ‘‘group’’ ACL エントリ、 ‘‘other’’ ACL エントリ。

コマンド行上で複数の ACL エントリを指定するには、コンマで区切ります。

診断

ユーティリティ setfacl は、成功すると 0 で、エラーがあった場合は >0 で終 了します。

使用例

setfacl -m u::rwx,g:mail:rw file

file に対し、 file 所有者の ACL エントリに読み取りと書き込みと実行のパー ミッションを設定し、 mail グループに読み取りと書き込みのパーミッションを 設定します。

setfacl -M file1 file2

file1 中の ACL エントリの設定/更新を file2 に適用します。

setfacl -x g:mail:rw file

読み書きパーミッションを持つ mail グループの ACL エントリを、 file から削 除します。

setfacl -bn file

必須の 3 個のエントリを除くすべての ‘‘access’’ ACL エントリを、 file から 削除します。

getfacl file1 | setfacl -b -n -M - file2

ACL エントリを、 file1 から file2 へコピーします。

関連項目

getfacl(1), acl(3), getextattr(8), setextattr(8), acl(9), extattr(9)

規格

setfacl ユーティリティは IEEE Std 1003.2c に従っていることが期待されま す。

歴史

拡張属性およびアクセス制御リストのサポートは、 TrustedBSD Project の一部 として開発され、 FreeBSD 5.0 で導入されました。

作者

setfacl ユーティリティは Chris D. Faulhaber ⟨jedgar@fxp.org⟩ が書きまし た。

FreeBSD 10.0 January 7, 2001 FreeBSD 10.0

スポンサーリンク