標準/拡張機能 | C/C++ | 依存項目 |
---|---|---|
z/OS UNIX |
両方 | z/OS V1R3 |
#define _OPEN_SYS 1
#include <sys/acl.h>
int acl_get_file (const char *path_p, acl_type_t type_d, lacl_t acl_d, int *num);
ファイルおよびディレクトリーへのアクセスを制御するために、許可ビットと一緒にアクセス制御 リスト (ACL) を使用してください。現在、ACL は HFS、TFS、および zFS ファイル・システムによってサポートされています。ご使用のセキュリティー製品で ACL がサポートされているかどうかについて、および ファイル・アクセスを決定するときに使用される規則について知っている必要があります。詳細は、「z/OS UNIX System Services 計画」を参照してください。
acl_get_file() 関数は、ファイル名によりオブジェクトに関連付けられたオブジェクト について type_d 引数を基にして ACL を検索します。ACL は、acl_d が指す、指定された作業用ストレージに取り出されます。 type_d = ACL_ACCESS の場合、acl_get_file() は、基本 ACL エントリーと拡張 ACL エントリーの 両方を取得します 基本 ACL エントリーは、ACL_ACCESS ACL だけに適用されます。
作業用ストレージは、acl_init() 関数を使用して割り振る必要があります。バッファーの大きさが十分でない場合、errno=E2BIG によって acl_get_fd() は失敗 し、fd が指す ACL 内の ACL の数が num に入ります。ユーザーは、num 値を使用してより大きい acl_t 構造体バッファーを取得 し、acl_get_fd() を再発行することができます。
指定した ACL が、ファイル記述子に関連付けられたオブジェクトにはない 場合、ACL エントリーがゼロの ACL が戻ります。ディレクトリー以外のオブジェクトが引数 fd によって参照されるとき に、type_d の値がディレクトリーおよびファイルのデフォルトである場合は、この関数は失敗します。
acl_get_fd() を呼び出した後で acl_get_entry() をはじめて呼び出したときには、システムによる順序付けに従って、ACL 内の最初の拡張 ACL エントリーが取得されます。acl_set_fd() を使用して、または OpType = ACL_ADD により acl_set_file() を使用して その同じ ACL を設定するために、acl_get_fd() の結果を使用できます。
正常終了の場合は、関数がゼロを戻します。
以下の条件のいずれかが検出された場合、acl_get_file() 関数は NULL の値を戻し、errno に対応する値を設定します。