diff options
Diffstat (limited to 'documentation/manual-pages/ja/man9/acl.9')
-rw-r--r-- | documentation/manual-pages/ja/man9/acl.9 | 212 |
1 files changed, 212 insertions, 0 deletions
diff --git a/documentation/manual-pages/ja/man9/acl.9 b/documentation/manual-pages/ja/man9/acl.9 new file mode 100644 index 0000000000..c6ee892704 --- /dev/null +++ b/documentation/manual-pages/ja/man9/acl.9 @@ -0,0 +1,212 @@ +.\"- +.\" Copyright (c) 1999-2001 Robert N. M. Watson +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" %FreeBSD: src/share/man/man9/acl.9,v 1.12 2002/12/12 17:25:58 ru Exp\ % +.\" +.\" $FreeBSD$ +.Dd December 23, 1999 +.Os +.Dt ACL 9 +.Sh 名称 +.Nm acl +.Nd 仮想ファイルシステムアクセス制御リスト +.Sh 書式 +.In sys/param.h +.In sys/vnode.h +.In sys/acl.h +.Pp +カーネルコンフィギュレーションファイルの中に、 +.Cd "options UFS_ACL" +.Sh 解説 +アクセス制御リスト、すなわち ACL は、 +ファイルおよびディレクトリを表現する vnode に対する権限を、 +きめ細かく指定可能とします。 +しかしながら、 +異なる ACL のセマンティクスを持つファイルシステムが過多にあるため、 +vnode インタフェースは ACL の文法のみを理解し、基礎をなすファイルシステムが +細部を実装することを当てにしています。 +基礎をなすファイルシステムに依存して、個々のファイルまたはディレクトリは、 +関連付けられる 0 個以上の ACL を持つことが可能です。 +それぞれ ACL の名前は、適切な vnode ACL 呼び出し +.Xr VOP_ACLCHECK 9 , +.Xr VOP_GETACL 9 +および +.Xr VOP_SETACL 9 +の +.Fa type +フィールドを使用して指定されます。 +.Pp +現在は、個々の ACL は以下に定義されるカーネル内で固定サイズの +.Vt acl +構造体によって表現されます。 +.Bd -literal -offset indent +struct acl { + int acl_cnt; + struct acl_entry acl_entry[ACL_MAX_ENTRIES]; +}; +.Ed +.Pp +ACL は、ACL エントリの固定サイズ配列で構成されます。 +各 ACL エントリは、 +パーミッションの組、主要な名前空間、主要な識別子から構成されます。 +.Pp +個別の ACL エントリは、以下のメンバを持つ構造体の +.Vt acl_entry_t +型です。 +.Bl -tag -width 2n +.It Vt acl_tag_t Va ae_tag +以下は +.Va ae_tag +に設定されるべき ACL の型の定義のリストです。 +.Pp +.Bl -tag -width ".Dv ACL_UNDEFINED_FIELD" -offset indent -compact +.It Dv ACL_UNDEFINED_FIELD +未定義の ACL 型。 +.It Dv ACL_USER_OBJ +実効ユーザ ID がファイルの所有者のユーザ ID と +一致するプロセスのための任意のアクセス権。 +.It Dv ACL_USER +実効ユーザ ID が ACL エントリの権限と +一致するプロセスのための任意のアクセス権。 +.It Dv ACL_GROUP_OBJ +実効グループ ID または全ての追加のグループがファイルの所有者のグループ ID と +一致するプロセスのための任意のアクセス権。 +.It Dv ACL_GROUP +実効グループ ID または全ての追加のグループが ACL エントリの権限と +一致するプロセスのための任意のアクセス権。 +.It Dv ACL_MASK +ファイルグループクラスの中のプロセスが許可されることができる +任意のアクセス権の最高限度。 +.It Dv ACL_OTHER +その他の ACL エントリによって保護されていない +プロセスのための任意のアクセス権。 +.It Dv ACL_OTHER_OBJ +.Dv ACL_OTHER +と同じです。 +各々の ACL エントリは、厳密に、1 つの +.Dv ACL_USER_OBJ +と 1 つの +.Dv ACL_GROUP_OBJ +と 1 つの +.Dv ACL_OTHER +を含まなければなりません。 +.Dv ACL_USER , +.Dv ACL_GROUP +または +.Dv ACL_OTHER +が存在する場合には、厳密に 1 つの +.Dv ACL_MASK +エントリが存在するべきです。 +.El +.It Vt uid_t Va ae_id +この ACL がアクセスパーミッションを記述しているユーザのユーザ ID。 +.It Vt acl_perm_t Va ae_perm +このフィールドは、この ACL に適合するプロセスが関連したファイルの +アクセスのために、どの種類のアクセスかを定義します。 +.Bl -tag -width ".Dv ACL_POSIX1E_BITS" +.It Dv ACL_EXECUTE +プロセスは関連したファイルの実行が可能です。 +.It Dv ACL_WRITE +プロセスは関連したファイルへの書込みが可能です。 +.It Dv ACL_READ +プロセスは関連したファイルからの読込みが可能です。 +.It Dv ACL_PERM_NONE +プロセスは関連したファイルへの読込み、書込みまたは実行のパーミッションを +所有していません。 +.El +.El +.Pp +.Sh 実装に関する注 +.Bd -literal +typedef mode_t *acl_permset_t; + +/* 内部の ACL 構造体 */ +struct acl { + int acl_cnt; + struct acl_entry acl_entry[ACL_MAX_ENTRIES]; +}; + +/* 外部の ACL 構造体 */ +struct acl_t_struct { + struct acl ats_acl; + int ats_cur_entry; +}; +typedef struct acl_t_struct *acl_t; + +/* + * ae_tag フィールドに有効な値 + */ +#define ACL_UNDEFINED_TAG 0x00000000 +#define ACL_USER_OBJ 0x00000001 +#define ACL_USER 0x00000002 +#define ACL_GROUP_OBJ 0x00000004 +#define ACL_GROUP 0x00000008 +#define ACL_MASK 0x00000010 +#define ACL_OTHER 0x00000020 +#define ACL_OTHER_OBJ ACL_OTHER + +/* + * acl_type_t 引数のために有効な値 + */ +#define ACL_TYPE_ACCESS 0x00000000 +#define ACL_TYPE_DEFAULT 0x00000001 +#define ACL_TYPE_AFS 0x00000002 +#define ACL_TYPE_CODA 0x00000003 +#define ACL_TYPE_NTFS 0x00000004 +#define ACL_TYPE_NWFS 0x00000005 + +/* + * ae_perm フィールドに可能なフラグ + */ +#define ACL_EXECUTE 0x0001 +#define ACL_WRITE 0x0002 +#define ACL_READ 0x0004 +#define ACL_PERM_NONE 0x0000 +#define ACL_PERM_BITS (ACL_EXECUTE | ACL_WRITE | ACL_READ) +#define ACL_POSIX1E_BITS (ACL_EXECUTE | ACL_WRITE | ACL_READ) + +/* + * acl_get_entry() のための entry_id に可能な値 + */ +#define ACL_FIRST_ENTRY 0 +#define ACL_NEXT_ENTRY 1 + +/* + * ae_id フィールドの中の未定義の値 + */ +#define ACL_UNDEFINED_ID ((uid_t)-1) +.Ed +.Sh 関連項目 +.Xr acl 3 , +.Xr vaccess_acl_posix1e 9 , +.Xr VFS 9 , +.Xr vaccess 9 , +.Xr VOP_ACLCHECK 9 , +.Xr VOP_GETACL 9 , +.Xr VOP_SETACL 9 +.Sh 作者 +このマニュアルページは +.An Robert Watson +が書きました。 |