EN JA
ACL_VALID(3)
ACL_VALID(3) FreeBSD Library Functions Manual ACL_VALID(3)

名称

acl_valid, acl_valid_fd_np, acl_valid_file_np, acl_valid_link_npACL を認証する

ライブラリ

Standard C Library (libc, -lc)

書式

#include < sys/types.h>
#include < sys/acl.h>

int
acl_valid( acl_t acl);

int
acl_valid_fd_np( int fd, acl_type_t type, acl_t acl);

int
acl_valid_file_np( const char *path_p, acl_type_t type, acl_t acl);

int
acl_valid_link_np( const char *path_p, acl_type_t type, acl_t acl);

解説

これらの関数は、引数 acl によって参照された ACL が有効なことをチェックします。 POSIX.1e ルーチン acl_valid() は、POSIX.1e ACL 意味論でのみ、および ACL が使用される文脈 (コンテキスト) に関係ないこの有効性をチェックします。移植性のない形式 acl_valid_fd_np(), acl_valid_file_np() および acl_valid_link_np() は、特定の acl タイプ、 type またはファイルシステムオブジェクトの文脈で ACL がチェックされることを可能にします、追加の ACL タイプが POSIX.1e 以上にサポートされる環境では、これは納得がいきます。 acl_valid_file_np() は指定されたパスがシンボリックリンクを指している場合、シンボリックリンクをたどるのに対して、 acl_valid_link_np() はたどりません。

POSIX.1e 意味論について、チェックは次のものを含んでいます。

  • 3 つの必須のエントリ ( ACL_USER_OBJ, ACL_GROUP_OBJ および ACL_OTHER) は、ACL に正確にかつて存在するものとします。 ACL がそのときファイルグループクラスにどんな ACL_USER, ACL_GROUP あるいは他の実装に定義されたエントリも含んでいる場合、1 つの ACL_MASK エントリもまた要求されるものとします。 ACL は多くても ACL_MASK エントリを含むものとします。
  • 修飾語フィールドは、ACL 機能がタグタイプを定義したのと同じ POSIX.1e のすべてのエントリ中にユニークであるものとします。タグタイプフィールドは、どんな実装に定義された値も含む有効な値を含むものとします。修飾語フィールドの値の認証は実装に定義されます。

POSIX.1e acl_valid() 関数は、検証の目的ために ACL をリオーダ (再注文、並べ変え?) できます。移植性のない確認関数はしないでしょう。

実装に関する注

FreeBSD の POSIX.1e インタフェースおよび特徴のサポートはまだこの時期に開発中です。

戻り値

Upon successful completion, the value 0 is returned; otherwise the value -1 is returned and the global variable errno is set to indicate the error.

エラー

下記条件のうちのどれかが生じる場合、これらの関数は -1 を返し、対応する値を errno に設定します。
[ EACCES]
検索許可はパス接頭辞のコンポーネントのために否定されます。あるいは、オブジェクトは存在します。また、プロセスは適切なアクセス権を持っていません。
[ EBADF]
fd 引数は有効なファイル記述子ではありません。
[ EINVAL]
引数 acl は有効な ACL を指していません。

要求された ACL エントリの 1 つ以上は acl の中にありません。

ACL は、ユニークでないエントリを含んでいます。

ファイルシステムは、fs に特有の意味論問題に基づいた ACL を拒絶します。

[ ENAMETOOLONG]
パス名のコンポーネントは 255 文字を超過しました。あるいは、パス名全体は 1023 文字を超過しました。
[ ENOENT]
指定されたオブジェクトは存在しません。あるいは、 path_p 引数は空の文字列を指しています。
[ ENOMEM]
リクエストを遂行するにはメモリが不足しています。
[ EOPNOTSUPP]
ファイルシステムは ACL 検索をサポートしません。

規格

POSIX.1e は、IEEE の POSIX.1e の草案の 17 に記述されています。草案の議論は、クロスプラットフォームの POSIX.1e 実装メーリングリストで継続しています。このリストに加入するための、より詳しい情報については、 FreeBSD POSIX.1e 実装ページを参照してください。

歴史

POSIX.1e サポートは、 FreeBSD 4.0 で導入され、開発は継続しています。

作者

Robert N M Watson
December 29, 2002 FreeBSD