Oracle Solaris ZFS 管理ガイド

ACL を設定する構文の説明

2 つの基本 ACL 形式を次に示します。

簡易 ACL を設定する構文

この ACL は、従来の UNIX の owner/group/other エントリを表現しているだけという点で、「簡易な」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 を設定する構文

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

owner@, group@, everyone@

簡易 ACL 構文の ACL-entry-type を指定します。ACL エントリタイプについては、表 8–1 を参照してください。

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

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

access-permissions/.../

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

inheritance-flags

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

deny | allow

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

次の例では、ACL-entry-ID の値は関係ありません。


group@:write_data/append_data/execute:deny

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


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

ACL エントリが表示されるときは、次のようになります。


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

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


chmod A3=user:venkman:read_acl:allow filename

ACL エントリタイプは、所有者やグループなどの ACL 表現です。次の表の説明を参照してください。

表 8–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 アクセス特権について、次の表で説明します。

表 8–2 ACL アクセス特権

アクセス特権 

アクセス特権のコンパクト表現 

説明 

add_file

w

ディレクトリに新しいファイルを追加するためのアクセス権。 

add_subdirectory

p

ディレクトリ上でサブディレクトリを作成するためのアクセス権。 

append_data

p

プレースホルダー。現時点では実装されていません。 

delete

d

ファイルを削除するためのアクセス権。 

delete_child

D

ディレクトリ内のファイルまたはディレクトリを削除するためのアクセス権。 

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 権限が必要です。