EN JA
SETAUDIT(2)
SETAUDIT(2) FreeBSD System Calls Manual SETAUDIT(2)

名称

setaudit, setaudit_addr監査セッション状態を設定する

書式

#include < bsm/audit.h>

int
setaudit( auditinfo_t *auditinfo);

int
setaudit_addr( auditinfo_addr_t *auditinfo_addr, u_int length);

解説

setaudit() システムコールは、 auditinfo によって指された auditinfo_t 通して現在のプロセスのためのアクティブな監査セッション状態を設定します。 setaudit_addr() システムコールは auditinfo_addrlength を通して拡張状態を設定します。

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 を定義しています。

setaudit_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 setaudit() and setaudit_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.

エラー

[ EFAULT]
カーネルへ、またはカーネルからのデータの転送に失敗しました。
[ EINVAL]
不正な引数が、システムコールに渡されました。
[ EPERM]
プロセスには、操作を完了するための十分なパーミッションがありません。

歴史

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

作者

このソフトウェアは、Apple Computer Inc. との契約に基づき、 McAfee Inc. のセキュリティ研究部門、McAfee Research によって作成されました。追加の作者として Wayne Salamon, Robert Watson と SPARTA Inc. が挙げられます。

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

このマニュアルページは、.An Robert Watson Aq rwatson@FreeBSD.org によって書かれました。

April 19, 2005 FreeBSD