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

名称

acl_add_permパーミッションセットへパーミッションを追加する

ライブラリ

Standard C Library (libc, -lc)

書式

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

int
acl_add_perm( acl_permset_t permset_d, acl_perm_t perm);

解説

acl_add_perm() 関数は、 perm に含まれたパーミッションをパーミッションセット permset_d に追加する POSIX.1e 呼び出しです。

注: パーミッションセットに既に存在するパーミッションを追加する試みは、エラーとはみなされません。

POSIX.1e ACL に関して、有効な値は、次の通りです:

ACL_EXECUTE 実行パーミッション
ACL_WRITE 書き込みパーミッション
ACL_READ 読み込みパーミッション

NFSv4 ACL に関して、有効な値は、次の通りです:

ACL_READ_DATA 読み込みパーミッション
ACL_LIST_DIRECTORY ACL_READ_DATA と同じ
ACL_WRITE_DATA 書き込みパーミッション, またはファイルを作成する
ACL_ADD_FILE ACL_READ_DATA と同じ
ACL_APPEND_DATA ディレクトリを作成するパーミッション. ファイルに対しては無視されます
ACL_ADD_SUBDIRECTORY ACL_APPEND_DATA と同じ
ACL_READ_NAMED_ATTRS 無視されます
ACL_WRITE_NAMED_ATTRS 無視されます
ACL_EXECUTE 実行パーミッション
ACL_DELETE_CHILD ファイルとサブディレクトリを削除するパーミッション
ACL_READ_ATTRIBUTES 基本属性を読み込むパーミッション
ACL_WRITE_ATTRIBUTES 基本属性を変更するパーミッション
ACL_DELETE この ACL が置かれるオブジェクトを削除するパーミッション
ACL_READ_ACL ACL を読み込むパーミッション
ACL_WRITE_ACL ACL とファイルモードを変更するパーミッション
ACL_SYNCHRONIZE 無視されます

ACL_WRITE または ACL_READ と等しい perm を付けて acl_add_perm() を呼び出すことは、POSIX として ACL に等級付けします。 ACL_READ_DATA, ACL_LIST_DIRECTORY, ACL_WRITE_DATA, ACL_ADD_FILE, ACL_APPEND_DATA, ACL_ADD_SUBDIRECTORY, ACL_READ_NAMED_ATTRS, ACL_WRITE_NAMED_ATTRS, ACL_DELETE_CHILD, ACL_READ_ATTRIBUTES, ACL_WRITE_ATTRIBUTES, ACL_DELETE, ACL_READ_ACL, ACL_WRITE_ACL または ACL_SYNCHRONIZE を付けて、それを呼び出すことは、 NFSv4 として ACL に等級付けします。

戻り値

The acl_add_perm() function returns the value 0 if successful; otherwise the value -1 is returned and the global variable errno is set to indicate the error.

エラー

acl_add_perm() 関数は、次の場合に失敗します:
[ EINVAL]
引数 permset_d が、ACL エントリ中のパーミッションセットのための有効な記述子ではありません。引数 perm が、有効な acl_perm_t 値を含んでいません。 ACL が、既に異なって等級付けられています。

規格

POSIX.1e は、IEEE の POSIX.1e の草案の 17 に記述されています。

歴史

POSIX.1e のサポートは、 FreeBSD 4.0 で導入されました。 acl_add_perm() 関数は、 FreeBSD 5.0 で追加されました。

作者

acl_add_perm() 関数は、 Chris D. Faulhaber <jedgar@fxp.org>によって書かれました。
June 25, 2009 FreeBSD