系统管理指南:安全性服务

praudit 命令

praudit 命令可使 auditreduce 命令的二进制输出具有可读性。praudit 命令可从标准输入中读取二进制格式的审计记录,并以可显示的格式显示这些记录。输入既可以从 auditreduce 命令进行管道输出,也可以从单个审计文件进行管道输出。输入还可以使用 cat 命令生成以串联数个文件,或者针对当前审计文件使用 tail 命令生成。

praudit 命令可以生成四种输出格式。第五个选项,即 -l(长),可在每个输出行中列显一条审计记录。缺省设置为在每个输出行中放置一个审计标记。-d 选项可更改标记字段之间以及标记之间使用的分隔符。缺省分隔符为逗号。

praudit 命令的缺省输出格式中,可以轻松地将每条记录标识为一系列审计标记。每个标记都在单独的行中显示。每条记录都以 header 标记开始。例如,您可以使用 awk 命令进一步处理输出。

以下是 header 标记的 praudit -l 命令的输出:


header,173,2,settppriv(2),,example1,2003-10-13 13:46:02.174 -07:00

以下是同一 header 标记的 praudit -r 命令的输出:


121,173,2,289,0x0000,192.168.86.166,1066077962,174352445

示例 30–1 使用脚本处理 praudit 输出

您可能需要将 praudit 命令的输出作为多行文本处理。例如,您可能需要选择 auditreduce 命令无法选择的记录。您可以使用简单的 shell 脚本来处理 praudit 命令的输出。下面的简单示例脚本在每行中放置一条审计记录,搜索用户指定的字符串,然后将审计文件返回到其原始格式。


#!/bin/sh

#

## This script takes an argument of a user-specified string.

#  The sed command prefixes the header tokens with Control-A

#  The first tr command puts the audit tokens for one record 

#  onto one line while preserving the line breaks as Control-A

#

praudit | sed -e '1,2d' -e '$s/^file.*$//' -e 's/^header/^aheader/' \\

| tr '\\012\\001' '\\002\\012' \\

| grep "$1" \\ 查找用户指定的字符串

| tr '\\002' '\\012' 恢复原始的新换行符

请注意,脚本中的 ^aCtrl-A,而不是 ^a 这两个字符。前缀将 header 标记与可能显示为文本的字符串 header 区分开来。