GETAUDIT(2) | FreeBSD System Calls Manual | GETAUDIT(2) |
名称
getaudit, getaudit_addr — 監査セッション状態を検索する書式
#include < bsm/audit.h> int
getaudit( auditinfo_t *auditinfo);
int
getaudit_addr( auditinfo_addr_t *auditinfo_addr, u_int length);
解説
getaudit() システムコールは、 auditinfo によって指された auditinfo_t 通して現在のプロセスのためのアクティブな監査セッション状態を検索します。 getaudit_addr() システムコールは、 auditinfo_addr と length を通して拡張状態を検索します。auditinfo_t データ構造は、次のように定義されます:
struct auditinfo { au_id_t ai_auid; /* Audit user ID */ au_mask_t ai_mask; /* Audit masks */ au_tid_t ai_termid; /* Terminal ID */ au_asid_t ai_asid; /* Audit session ID */ }; typedef struct auditinfo auditinfo_t;
ai_auid 変数は、プロセスが引き起こした各イベントのための監査ログに記録される監査識別子を含んでいます。
au_mask_t データ構造は、監査の成功したビットマスクとイベントのクラスの事前に定義されたリストの範囲外の失敗したイベントを定義しています。それは、次のように定義されます:
struct au_mask { unsigned int am_success; /* success bits */ unsigned int am_failure; /* failure bits */ }; typedef struct au_mask au_mask_t;
au_termid_t データ構造は、プロセスによって引き起こされる、すべてのイベントで記録された端末 (Terminal) ID を定義しています。それは、次のように定義されます:
struct au_tid { dev_t port; u_int32_t machine; }; typedef struct au_tid au_tid_t;
ai_asid 変数は、プロセスによって引き起こされる、すべてのイベントで記録された監査セッション (session) ID を定義しています。
getaudit_addr() システムコールは、IP バージョン 6 で使用される、より大きいアドレスがある端末 (Terminal) ID をサポートする、拡張 auditinfo_addr_t データ構造を使用します。それは、次のように定義されます:
struct auditinfo_addr { au_id_t ai_auid; /* Audit user ID. */ au_mask_t ai_mask; /* Audit masks. */ au_tid_addr_t ai_termid; /* Terminal ID. */ au_asid_t ai_asid; /* Audit session ID. */ }; typedef struct auditinfo_addr auditinfo_addr_t;
より大きいアドレス記憶域フィールドと格納されたアドレスのタイプがある追加フィールド含んでいる au_tid_addr_t データ構造:
struct au_tid_addr { dev_t at_port; u_int32_t at_type; u_int32_t at_addr[4]; }; typedef struct au_tid_addr au_tid_addr_t;
これらのシステムコールは、完了するために適切な特権を必要とします。
戻り値
The getaudit() and getaudit_addr() functions return the value 0 if successful; otherwise the value -1 is returned and the global variable errno is set to indicate the error.エラー
getaudit() 関数は、次の場合に失敗します:- [ EFAULT]
- カーネルへ、またはカーネルからのデータの転送に失敗しました。
- [ EINVAL]
- 不正な引数が、システムコールに渡されました。
- [ EPERM]
- プロセスには、操作を完了するための十分なパーミッションがありません。
- [ EOVERFLOW]
- length 引数が、オーバフロー条件が起こったことを示しています。
- [ E2BIG]
- アドレスが大き過ぎます、したがって、 getaudit_addr() が、代わりに使用されるべきです。
歴史
OpenBSM 実装は、2004 年に Apple Computer Inc. との契約に基づき、 McAfee Inc. のセキュリティ部門、McAfee Research によって作成されました。その後にそれは、OpenBSM 配布のための基盤として TrustedBSD Project によって採用されました。作者
このソフトウェアは、Apple Computer Inc. との契約に基づき、 McAfee Inc. のセキュリティ研究部門、McAfee Research によって作成されました。追加の作者として , と SPARTA Inc. が挙げられます。レコードを監査し、イベントストリームフォーマットを監査する Basic Security Module (BSM) インタフェースは、Sun Microsystems によって定義されました。
このマニュアルページは、.An Robert Watson Aq rwatson@FreeBSD.org によって書かれました。
October 19, 2008 | FreeBSD |