ACL_VALID(3) | FreeBSD Library Functions Manual | ACL_VALID(3) |
名称
acl_valid, acl_valid_fd_np, acl_valid_file_np, acl_valid_link_np — ACL を認証するライブラリ
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 で導入され、開発は継続しています。作者
December 29, 2002 | FreeBSD |