acl_valid() - ACL の妥当性検査

標準

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

z/OS UNIX

両方 z/OS V1R3

形式

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

int     acl_valid (lacl_t acl_d, acl_entry_t *entry_p);			

機能説明

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

acl_valid() 関数は、引数 acl_d によって参照されるアクセス ACL、ファイル・ デフォルト ACL、またはディレクトリー・デフォルト ACL の妥当性を検査します。

ACL_USER、ACL_GROUP、および ACL_OTHER は、基本 ACL エントリーの中に 1 回だけ存在する ことができます。ACL_OTHER は、基本 ACL エントリーにだけ適用されます。

タグ・タイプ (ユーザー、グループ) には、拡張 ACL エントリーに対して有効な値が含まれる 必要があります。修飾子フィールド (UID、GID) は、削除するためにマップされる拡張 ACL エントリーを除いて、同じ ACL のすべての拡張 ACL エントリー間で固有でなければなりません (詳細 は、sys/acl.hの ACL エントリー・マッピングを参照してください)。acl_d によって参照される ACL 内の基本 ACL エントリーと拡張 ACL エントリーの 両方またはいずれかの順序は、変更される場合があります。

acl_valid() を呼び出した後で acl_get_entry() をはじめて呼び出したときには、システムによる順序付けに従って、ACL 内の最初の拡張 ACL エントリーが取得されます。

戻り値

正常終了の場合は、関数はゼロの値を戻します。

以下の条件のいずれかが検出された場合、entry_p によって参照されるロケーション は未定義となり、acl_valid() 関数は -1 を戻し、errno が対応する値に設定されます。

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

以下の条件のいずれかが検出された場合、acl_valid() 関数は、entry_p によって参照される ロケーションを、エラーになっている ACL エントリーの 1 つに設定し、-2 を戻すとともに errno を 該当する値に設定します。

エラー・コード
説明
EINVAL
固有ではない、または ACL エントリー・タイプが無効である拡張 ACL エントリー が ACL に含まれています。

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

エラー・コード
説明
EINVAL
固有ではない、または ACL エントリー・タイプが無効である基本 ACL エントリー が ACL に含まれています。同じタグ・タイプ (ACL_USER、ACL_GROUP、ACL_OTHER) の基本 ACL エントリーは、1 つだけ存在することができます。

関連情報