acl_get_entry() - ACL エントリーの取得

標準

標準/拡張機能 C/C++ 依存項目

z/OS UNIX

両方 z/OS V1R3

形式

#define _OPEN_SYS	1
#include <sys/acl.h>

int     acl_get_entry (lacl_t acl_d, acl_entry_t *entry_p);

機能説明

ファイルおよびディレクトリーへのアクセスを制御するために、許可ビットと一緒にアクセス制御 リスト (ACL) を使用してください。現在、ACL は HFS、TFS、および zFS ファイル・システムによってサポートされています。ご使用のセキュリティー製品で ACL がサポートされているかどうかについて、および ファイル・アクセスを決定するときに使用される規則について知っている必要があります。詳細は、「z/OS UNIX System Services 計画」を参照してください。

acl_get_entry() 関数は、引数 acl_d によって指示された ACL の 次の拡張 ACL エントリーに対する記述子を取得します。正常に実行された場合、acl_get_entry() 関数は、entry_p によって拡張 ACL エントリーの記述子 を戻します。引数 acl_d で有効な acl_t 構造体が参照される必要があります。

acl_first_entry()、acl_from_text()、acl_get_fd()、acl_get_file()、acl_set_fd()、 acl_set_file()、acl_valid() のいずれかを呼び出した後で acl_get_entry() をはじめて呼び出した ときには、システムによる順序付けに従って ACL 内の最初の拡張 ACL エントリーが取得されます。acl_get_entry() のこれ以降の呼び出しでは、最後のエントリーが取得されるまで連続した 拡張 ACL エントリーが取得されます。最後の拡張 ACL エントリーが acl_d から取得されたあと、値 NULL が entry_p によって戻されます。

ACL に基本 ACL エントリーがあるかどうかを判別するには、acl_d->lacl_base を検査して ください。これによって、存在している基本 ACL エントリーの数が示されます。その場合、このプロセスで基本 ACL エントリーに acl_d の中で直接アクセス できます (例えば、acl_d->lacl_base_entries[0].acle_type は、最初の基本 ACL エントリー のタイプ・フィールドです)。

戻り値

この関数は、拡張 ACL エントリーへのポインターを正常に取得した場合、値 1 を戻します。ACL 内の最後の拡張 ACL エントリーが acl_get_entry() の直前の呼び出しで既に戻されている 場合、または ACL に拡張 ACL エントリーがまったくない場合には、この関数は値 0 を戻します。

以下の条件のいずれかが検出された場合、acl_get_entry() 関数は -1 を戻し、errno に対応する値を設定します。

エラー・コード
説明
EINVAL
引数 acl_d が、ACL 構造体を指していません。

関連情報