Oracle® Solaris 11.2 での ZFS ファイルシステムの管理

印刷ビューの終了

更新: 2014 年 12 月
 
 

ACL を設定する構文の説明

基本的な ACL 形式として、次の 2 つの形式が用意されています。

  • 簡易 ACL - 従来の UNIX usergroup、および owner エントリのみが含まれます。

    簡易 ACL を設定するには、次のコマンド構文を使用します。

    chmod [options] A[index]{+|=}owner@ |group@ |everyone@: \
      access-permissions/...[:inheritance-flags]:deny | allow file
    chmod [options] A-owner@, group@, everyone@: \
      access-permissions/...[:inheritance-flags]:deny | allow file ...
    chmod [options] A[index]- file
  • 非簡易 ACL – 所有者、グループ、および全員だけでなくそれ以外のエントリが含まれるか、継承フラグセットが含まれるか、またはエントリが従来とは異なる方法で順序付けられます。

    非簡易 ACL を設定するには、次のコマンド構文を使用します。

    chmod [options] A[index]{+|=}user|group:name: \
    access-permissions/...[:inheritance-flags]:deny | allow file
    chmod [options] A-user|group:name: \
    access-permissions/...[:inheritance-flags]:deny | allow file ...
    chmod [options] A[index]- file

次の一覧は、簡易および非簡易 ACL を設定するためのコマンドで使用されるオプションを示しています。

owner@, group@, everyone@

簡易 ACL 構文の ACL-entry-type を指定します。ACL-entry-types については、Table 7–1 を参照してください。

user または group:ACL-entry-ID=username または groupname

明示的な ACL 構文の ACL-entry-type を指定します。ユーザーとグループの ACL-entry-type には、ACL-entry-ID と、username または groupname も含める必要があります。ACL-entry-types については、Table 7–1 を参照してください。

access-permissions/.../

許可または拒否するアクセス権を指定します。ACL アクセス特権については、Table 7–2 を参照してください。

inheritance-flags

ACL 継承フラグのオプションリストを指定します。ACL 継承フラグについては、Table 7–4 を参照してください。

deny | allow

そのアクセス権を許可するかまたは拒否するかを指定します。

次の例では、owner@group@、または everyone@ についての ACL-entry-ID の値は存在しません。

group@:write_data/append_data/execute:deny

次の例では、ACL-entry-ID が含まれています。特定のユーザー (ACL-entry-type) を ACL に含めるためです。

0:user:joe:list_directory/read_data/execute:allow

次のような ACL エントリが表示されます。

2:group@:write_data/append_data/execute:deny

この例では 2 つまり index-ID が指定されていますが、これは、より大きな ACL の ACL エントリであることを示しています。所有者、特定の UID、グループ、および全員のための複数のエントリで構成される可能性があります。chmod コマンドと一緒に index-ID を指定すれば、ACL のどの部分を変更するかを指定できます。たとえば次のように、chmod コマンドに A3 と指定して、インデックス ID 3 を特定することができます。

chmod A3=user:venkman:read_acl:allow filename

次の表は、所有者、グループ、およびその他の ACL 表現である、ACL エントリタイプを示しています。

表 7-1  ACL エントリタイプ
ACL エントリタイプ
説明
owner@
オブジェクトの所有者に許可するアクセス権を指定します。
group@
オブジェクトを所有するグループに許可するアクセス権を指定します。
everyone@
ほかのどの ACL エントリにも一致しないすべてのユーザーまたはグループに許可するアクセス権を指定します。
user
ユーザー名を使って、オブジェクトに追加するユーザーに許可するアクセス権を指定します。ACL-entry-ID を含める必要があります。username または userID を指定します。値が有効な数値 UID または username でない場合、その ACL エントリタイプは無効です。
group
グループ名を使って、オブジェクトに追加するグループに許可するアクセス権を指定します。ACL-entry-ID を含める必要があります。groupname または groupID を指定します。値が有効な数値 GID または groupname でない場合、その ACL エントリタイプは無効です。

ACL アクセス特権について、次の表で説明します。

表 7-2  ACL アクセス特権
アクセス特権
アクセス特権のコンパクト表現
説明
add_file
w
ディレクトリに新しいファイルを追加するためのアクセス権。
add_subdirectory
p
ディレクトリ上でサブディレクトリを作成するためのアクセス権。
append_data
p
現時点では実装されていません。
delete
d
ファイルを削除するためのアクセス権。delete アクセス権の特定の動作の詳細については、Table 7–3 を参照してください。
delete_child
D
ディレクトリ内のファイルまたはディレクトリを削除するためのアクセス権。delete_child アクセス権の特定の動作の詳細については、Table 7–3 を参照してください。
execute
x
ファイルを実行するためのアクセス権またはディレクトリの内容を検索するためのアクセス権。
list_directory
r
ディレクトリの内容を表示するためのアクセス権。
read_acl
c
ACL (ls) を読み取るためのアクセス権。
read_attributes
a
ファイルの基本属性 (ACL 以外) を読み取るためのアクセス権。基本属性は、stat レベルの属性と考えてください。このアクセスマスクビットを許可したエンティティーは、ls(1) および stat(2) を実行できる状態になります。
read_data
r
ファイルの内容を読み取るためのアクセス権。
read_xattr
R
ファイルの拡張属性を読み取るためのアクセス権。または、ファイルの拡張属性ディレクトリの検索を実行するためのアクセス権。
synchronize
s
現時点では実装されていません。
write_xattr
W
拡張属性を作成するためのアクセス権。または、拡張属性ディレクトリに書き込みむためのアクセス権。
このアクセス権を許可したユーザーは、ファイルの拡張属性ディレクトリを作成できます。属性ファイルのアクセス権を使って、その属性にユーザーがアクセスできるかどうかを制御します。
write_data
w
ファイルの内容を変更または置き換えるためのアクセス権。
write_attributes
A
ファイルまたはディレクトリに関連付けられた時間を任意の値に変更するためのアクセス権。
write_acl
C
ACL を書き込むためのアクセス権。つまり chmod コマンドを使用して ACL を変更することができます。
write_owner
o
ファイルの所有者またはグループを変更するためのアクセス権。つまり、ファイルに対して chown または chgrp コマンドを実行することができます。
ファイルの所有権を取得するためのアクセス権。または、ファイルのグループ所有権をユーザーが所属するグループに変更するためのアクセス権。ファイルまたはグループの所有権を任意のユーザーまたはグループに変更する場合は、PRIV_FILE_CHOWN 権限が必要です。

次の表に、ACL delete および delete_child の動作の追加詳細を示します。

表 7-3  ACL delete および delete_child アクセス権の動作
親ディレクトリのアクセス権
ターゲットオブジェクトのアクセス権
ACL は delete を許可
ACL は delete を拒否
未指定のアクセス権を削除
ACL は delete_child を許可
パーミット
パーミット
パーミット
ACL は delete_child を拒否
パーミット
拒否
拒否
ACL は writeexecute だけを許可
パーミット
パーミット
パーミット
ACL は writeexecute を拒否
パーミット
拒否
拒否

ZFS ACL セット

次の ACL の組み合わせを、個々のアクセス権を個別に設定するのではなく ACL セットで適用できます。次のような ACL セットが利用可能です。

ACL セット名
含まれる ACL アクセス権
full_set
すべてのアクセス権
modify_set
write_aclwrite_owner を除くすべてのアクセス権
read_set
read_dataread_attributes read_xattr、および read_acl
write_set
write_dataappend_datawrite_attributes 、および write_xattr

これらの ACL セットは事前に定義されたものであり、変更することはできません。