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

名称

au_preselect, getauditflagsbin, getauditflagschar文字列と監査マスクの数値を相互に変換する

ライブラリ

Basic Security Module User Library (libbsm, -lbsm)

書式

#include < bsm/libbsm.h>

int
au_preselect( au_event_t event, au_mask_t *mask_p, int sorf, int flag);

int
getauditflagsbin( char *auditstr, au_mask_t *masks);

int
getauditflagschar( char *auditstr, au_mask_t *masks, int verbose);

解説

これらのインタフェースは、数値とテキスト形式の間の変換とイベントがマスクによって適合するかどうかを計算することを含んで、タイプ au_mask_t によって表される監査マスクの処理をサポートします。

au_preselect() 関数は、 event を通して渡される監査イベントが mask_p を通して渡される監査マスクによって適合するかどうかを計算します。 sorf 引数は、 AU_PRS_SUCCESS フラグが設定されているなら、成功している、または AU_PRS_FAILURE フラグが設定されているなら、失敗しているイベントであるとみなすかどうかを示します。 flag 引数は、キャッシュから読み込むよりむしろ再検索されるイベントを引き起こす AU_PRS_REREAD または、キャッシュの使用を強制する AU_PRS_USECACHE を含んで、 au_preselect() の振る舞いに影響を及ぼす追加引数を受け付けます。

getauditflagsbin() 関数は、 auditstr によって指された文字列を通して渡された監査マスクの文字列表現を変換し、有効であるなら、結果のマスクを *masks を通して返します。

getauditflagschar() 関数は、 *masks を通して渡された監査イベントマスクを変換して、 auditstr によって指されたバッファ中の文字列にそれを変換して置きます。どのように十分なサイズのバッファを提供するかに関する詳しい情報については、 「バグ」 セッションを参照してください。 verbose フラグが設定されているなら、 audit_class(5) から検索されたクラス記述文字列が使用されます。そうでなければ、2 文字のクラス名が使用されます。

実装に関する注

au_preselect() 関数は、様々な監査データベースルーチンを暗黙に使用して、他のコードによってそれらのデータベースの同期、または、インタリーブされた処理の振る舞いに影響を及ぼすかもしれません。

戻り値

au_preselect() 関数は、成功すれば 0 を返すか、またはイベントタイプまたは他のデータベースアクセスで失敗があるなら、-1 を返します、その場合、 errno はエラーの内容を示すように設定されます。イベントが適合するなら、1 を返し、そうでなければ 0 を返します。


The getauditflagsbin() and getauditflagschar() functions return the value 0 if successful; otherwise the value -1 is returned and the global variable errno is set to indicate the error.

関連項目

libbsm(3), audit_class(5)

歴史

OpenBSM 実装は、2004 年に Apple Computer Inc. との契約に基づき、 McAfee Inc. のセキュリティ部門、McAfee Research によって作成されました。その後にそれは、OpenBSM 配布のための基盤として TrustedBSD Project によって採用されました。

作者

このソフトウェアは、Apple Computer Inc. との契約に基づき、 McAfee Inc. のセキュリティ研究部門、McAfee Research のために Robert Watson, Wayne SalamonSuresh Krishnaswamy によって作成されました。

レコードを監査し、イベントストリームフォーマットを監査する Basic Security Module (BSM) インタフェースは、Sun Microsystems によって定義されました。

バグ

errno 変数は、エラーの場合に、常に適切に設定されるというわけではありません。

getauditflagschar() 関数は、オーバフローを検出するために、文字バッファがどれくらい長さかを示すための方法を提供していません。結果として、呼び出し側は、イベントの非冗長な (non-verbose) クラス名のマスク引数で 0 でないビットの 3 倍の数が使用されているものとして計算される、任意の利用可能なマスクのために常に十分な長さのバッファを提供しなければなりません、そして、冗長な (verbose) クラス名のための自明の予測はできません。この API は、より強健なものに置き替えられるべきです。

April 19, 2005 FreeBSD