EN JA
VACCESS(9)
VACCESS(9) FreeBSD Kernel Developer's Manual VACCESS(9)

名称

vaccessvnode パラメータを使用してアクセス制御決定を生成する

書式

#include < sys/param.h>
#include < sys/vnode.h>

int
vaccess( enum vtype type, mode_t file_mode, uid_t file_uid, gid_t file_gid, accmode_t accmode, struct ucred *cred, int *privused);

解説

この呼び出しは FreeBSD の多くのファイルシステムに共通の UNIX の任意のファイルのセキュリティモデルのための論理を実装します。それは vnode タイプ typefile_mode を通したパーミッション、所有している UID file_uid、所有している GID file_gid、必要なアクセスモード accmode、要求される資格証明 cred と特権が呼び出しの成功した評価に必要であったかどうかを返すオプションの参照呼び出し (call-by-reference) int ポインタを受け付けます。 privused ポインタは、特権情報をに詳しくならないために呼び出し側によって NULL に設定されるか、または、それは特権が使用されているなら 1 に、そうでなければ 0 に設定される整数へのポインタです。

この呼び出しは、vnode の特性を検索してそれら自体のアクセス方法を使用し、次に実際のチェックを実行するために、 vaccess() を呼び出す VOP_ACCESS(9) の実装をサポートすることを目的としています。 VOP_ACCESS(9) の実装は、結果が返り値で構成される、追加のセキュリティメカニズムを実装することを選びます。

vaccess() によって使用されるアルゴリズムは、渡された資格証明、ファイル所有者、とファイルグループを比較することに基づいてファイルパーミッションビットの構成要素を選択します。資格証明の実効 UID がファイル所有者に適合するなら、パーミッションビットの所有者の構成要素が選択されます。 UID が適合しないなら、追加グループが続く、資格証明の実効 GID は、ファイルグループと比較され—一致があれば、パーミッションビットのグループの構成要素が選択されます。資格証明 UID または GID が渡されたファイルの所有者とグループに適合しないなら、パーミッションビットのたの構成要素が選択されます。

いったん適切な保護が現在の資格証明のために選択されると、要求されたアクセスモードは、vnode タイプと組み合わせて、資格証明のための任意の権利が利用可能な状態で比較されます。任意の保護によって与えられた権利が不十分であるなら、スーパユーザ特権は、資格証明のために利用可能であるなら、また、考慮されます。

戻り値

vaccess() は、成功すれば 0 を返し、失敗すれば 0 以外のエラー値を返します。

エラー

[ EACCES]
パーミッションは拒否されました。ファイルアクセスパーミッションで禁じられた方法でファイルにアクセスしようと試みました。
[ EPERM]
操作は許可されませんでした。適切な特権があるプロセス、または、ファイルか他のリソースの所有者に制限された操作を実行しようと試みました。

作者

このマニュアルページと vaccess() の現在の実装は Robert Watson によって書かれました。
September 18, 2009 FreeBSD