ACL_GET(3) | FreeBSD Library Functions Manual | ACL_GET(3) |
名称
acl_get_fd, acl_get_fd_np, acl_get_file, acl_get_link_np — ファイルのために ACL を取得するライブラリ
Standard C Library (libc, -lc)書式
#include < sys/types.h>#include < sys/acl.h>
acl_t
acl_get_fd( int fd);
acl_t
acl_get_fd_np( int fd, acl_type_t type);
acl_t
acl_get_file( const char *path_p, acl_type_t type);
acl_t
acl_get_link_np( const char *path_p, acl_type_t type);
解説
acl_get_fd(), acl_get_file(), acl_get_link_np() と acl_get_fd_np() は、それぞれ、ファイルから ACL の検索を許可します。 acl_get_fd() はファイル記述子からのタイプ ACL_TYPE_ACCESS の ACL の検索を許可する POSIX.1e 呼び出しです。 acl_get_fd_np() 関数は、ファイル記述子からの任意のタイプの ACL の検索を許可する acl_get_fd() の移植性のない形式です。 acl_get_file() 関数は、名前によってファイルから指定された ACL のタイプの取り出しを可能にする POSIX.1e 呼び出しです。 acl_get_link_np() は呼び出しの目標がシンボリックリンクである場合、シンボリックリンクをたどらない acl_get_file() の移植性のないバリエーションです。メモリはこれらの関数によって割り付けできます。引数として (void *)acl_t で acl_free(3) を呼ぶことによって、新しい ACL がもはや要求されない場合、呼び出し側はどんな解放可能なメモリも解放するべきです。
作業用記憶域の ACL は fd によって参照されたオブジェクトに関連した ACL の独立したコピーです。作業用記憶域の ACL は任意のアクセスコントロール決定に参加しません。
type 引数のための有効な値は、次の通りです:
ACL_TYPE_ACCESS | POSIX.1e アクセス ACL |
ACL_TYPE_DEFAULT | POSIX.1e デフォルト ACL |
ACL_TYPE_NFS4 | NFSv4 ACL |
返された ACL は、それに応じて、等級 (brand) が付けられます。
実装に関する注
FreeBSD の POSIX.1e インタフェースおよび特徴のサポートはまだこの時期に開発中です。戻り値
成功して終了すれば、この関数は、検索された ACL へのポインタを返します。そうでなければ、 (acl_t)NULL の値が返されます。また、 errno は、エラーを示す値が設定されます。エラー
下記条件のうちのどれかが生じる場合、 acl_get_fd() 関数は、 (acl_t)NULL の値を返し、対応する値を errno に設定します。- [ EACCES]
- 検索許可はパス接頭辞のコンポーネントのために否定されます。あるいは、オブジェクトは存在します。また、プロセスは適切なアクセス権を持っていません。
- [ EBADF]
- fd 引数が有効なファイル記述子ではありません。
- [ EINVAL]
- 渡された 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 で導入され、開発は継続しています。作者
June 25, 2009 | FreeBSD |