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

名称

acl_set_fd, acl_set_fd_np, acl_set_file, acl_set_link_npファイルのための ACL を設定する

ライブラリ

Standard C Library (libc, -lc)

書式

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

int
acl_set_fd( int fd, acl_t acl);

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

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

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

解説

acl_set_fd(), acl_set_fd_np(), acl_set_file() および acl_set_link_np() はそれぞれ、 fd または path_p によって参照されるオブジェクトに ACL を関連させます。 acl_set_fd_np() および acl_set_link_np() 関数は POSIX.1e 呼び出しではありません。 acl_set_fd_np() が任意のタイプの ACL の設定を許可するところで、 acl_set_fd() 関数はタイプ ACL_TYPE_ACCESS の ACL の設定のみを許可します。 acl_set_link_np() 関数は、パスの目標がシンボリックリンクの場合、その目標ではなくシンボリックリンクに作用します。

type 引数のための有効な値は、次の通りです:

ACL_TYPE_ACCESS POSIX.1e アクセス ACL
ACL_TYPE_DEFAULT POSIX.1e デフォルト ACL
ACL_TYPE_NFS4 NFSv4 ACL

POSIX.1e として acl 等級が付けられている ACL_TYPE_NFS4 を設定しようと試みます、または NFSv4 として ACL 等級が付けられている ACL_TYPE_ACCESS または ACL_TYPE_DEFAULT は、エラーとなります。

実装に関する注

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 を指していません、または、 type で指定される ACL タイプは、このオブジェクトのために無効であるか、または等級付けにミスマッチがあります。
[ ENAMETOOLONG]
パス名のコンポーネントは 255 文字を超過しました。あるいは、パス名全体は 1023 文字を超過しました。
[ ENOENT]
指定されたオブジェクトは存在しません。あるいは、 path_p 引数は空の文字列を指しています。
[ ENOMEM]
リクエストを遂行するにはメモリが不足しています。
[ ENOSPC]
新しい ACL を含むディレクトリかファイルシステムは拡張することができません。あるいは、ファイルシステムはファイル割り付け資源が不足しています。
[ EOPNOTSUPP]
ファイルシステムは ACL 検索をサポートしません。
[ EROFS]
この関数は、現在読み込み専用のファイルシステムの修正を要求します。

規格

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

歴史

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

作者

Robert N M Watson
June 25, 2009 FreeBSD