> For the complete documentation index, see [llms.txt](https://handbook.bsdcn.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://handbook.bsdcn.org/di-16-zhang-an-quan/16.13.-jin-cheng-shen-ji.md).

# 16.13.进程审计

进程审计是一种安全方法，管理员可用来跟踪系统资源的使用情况及其在用户之间的分配，提供系统监控，并最低限度地跟踪用户的命令。

进程审计有其优点和缺点。优点是，可将入侵范围缩小到入口点。缺点是进程审计生成的日志数量及其可能占用的磁盘空间。本节将引导管理员了解进程审计的基础。

> **注意**
>
> 如果需要更细粒度的审计，请参考[安全事件审计](/di-20-zhang-an-quan-shi-jian-shen-ji/20.1.-gai-shu.md)。

## 16.13.1. 启用和使用进程审计

在使用进程审计之前，必须使用以下命令启用它：

```sh
# sysrc accounting_enable=yes
# service accounting start
```

审计信息存储在 **/var/account** 中的文件中，如果必要，第一次启动审计服务时会自动创建该目录。这些文件包含敏感信息，包括所有用户执行的命令。对这些文件的写入权限仅限于 `root`，读取权限仅限于 `root` 和 `wheel` 组的成员。为了同时防止 `wheel` 组的成员读取这些文件，可将 **/var/account** 目录的模式更改为仅让 `root` 能访问。

启用后，审计将开始跟踪信息，如 CPU 统计信息和执行的命令。所有审计日志都是非人类可读的格式，可使用 [sa(8)](https://man.freebsd.org/cgi/man.cgi?query=sa\&sektion=8\&format=html) 查看。如果不带任何选项运行 [sa(8)](https://man.freebsd.org/cgi/man.cgi?query=sa\&sektion=8\&format=html)，则会打印与每个用户的调用数量、总的经过时间（分钟）、总的 CPU 时间和用户时间（分钟）以及平均 I/O 操作次数相关的信息。有关控制输出的可用选项列表，请参阅 [sa(8)](https://man.freebsd.org/cgi/man.cgi?query=sa\&sektion=8\&format=html)。

要显示用户执行的命令，可使用 `lastcomm`。

例如，以下命令会打印出 `trhodes` 在 `ttyp1` 终端上使用 `ls` 的所有记录：

```sh
# lastcomm ls trhodes ttyp1
```

还有许多其他有用的选项，可在 [lastcomm(1)](https://man.freebsd.org/cgi/man.cgi?query=lastcomm\&sektion=1\&format=html)、[acct(5)](https://man.freebsd.org/cgi/man.cgi?query=acct\&sektion=5\&format=html) 和 [sa(8)](https://man.freebsd.org/cgi/man.cgi?query=sa\&sektion=8\&format=html) 中找到解释。
