bart - 文件完整性扫描程序和报告程序
/usr/bin/bart create [ -n] [-R root_directory] [-r rules_file | -] [-a md5|sha1|sha256|sha384|sha512]
/usr/bin/bart create [-n] [-R root_directory] -I [-a md5|sha1|sha256|sha384|sha512] [file_name]。。。
/usr/bin/bart compare [-i attribute ] [-p] [-r rules_file | -] control-manifest test-manifest
bart(8) 是一个基于规则的文件完整性扫描和报告工具,它使用加密强度校验和以及文件系统元数据来报告更改。
bart 实用程序执行两个基本函数:
该清单生成器工具创建系统的文件级快照 。输出是一个文件属性目录,称为清单。See bart_manifest(5).
您可以通过三种方式指定在目录中列出的文件列表。使用不带任何选项的 bart create、在命令行中通过名称指定文件,或者通过使用指令指定要监视的文件来创建规则文件。See bart_rules(5).
缺省情况下,清单生成器在目录中列出根 (/) 文件系统中所有文件的所有属性。Other file systems are cataloged only if they are of the same type as the root file system, and the path to them does not cross any other type of file system.
For example, if /, /var, and /var/share are separate ZFS file systems, with /var mounted on / and /var/share mounted on /var, then all three file systems are cataloged.However, /tmp, also mounted on /, would not be cataloged because it is a TMPFS file system.
该报告工具比较两个清单。输出是按文件组织的属性差异列表。这些差异是控制清单和测试清单这两个清单之间的差异。
差异是指两个清单中列出的某个给定文件的任何属性发生的变化。清单中的新文件或删除文件报告为差异。
此报告机制提供了两种类型的输出:详细输出和程序输出。详细输出进行了本地化,显示在多行中,而程序输出更便于其他程序解析。请参见 OUTPUT。
缺省情况下,报告工具生成详细输出来报告除修改目录的时间戳(dirmtime 属性)以外的所有差异。
为了确保一致且准确的比较结果,control-manifest 和 test-manifest 必须使用相同的规则文件构建,并且需要在“比较”操作过程中使用该规则文件。
生成清单或比较两个清单时,可使用规则文件忽略指定的文件或子树。通过使用不同的规则文件重新运行 bart compare 命令,用户可以从不同的角度比较清单。请参见 bart_rules(5) 和 bart_manifest(5)。
您还可以通过规则文件 bart_rules 指定要跟踪的文件以及要标记的差异类型。
支持以下选项:
指定要全局忽略的文件属性。以逗号分隔列表形式指定属性。
此选项与将文件属性提供给规则文件中的全局 IGNORE 关键字具有相同的行为。See bart_rules(5).
指定文件的输入列表。可以在命令行中指定或从标准输入读取文件列表。
禁止计算文件列表中所有常规文件的内容签名。
Display manifest comparison output in “programmatic mode,” which is suitable for programmatic parsing.输出不本地化。
使用 rules_file 可指定要在目录中列出哪些文件和目录,并定义要标记哪些文件属性差异。如果 rules_file 为 –,则从标准输入读取规则。See bart_rules(5) for the definition of the syntax.
指定清单的根目录。规则指定的所有路径以及清单中报告的所有路径都是相对于 root_directory 的。
Specify the cryptographic digest algorithm to use for the hash of the file contents: md5, sha1, sha256, sha384, and sha512 are the currently supported values.如果未指定 –a,则使用 sha256 并创建版本 1.1 清单,该清单中会指明使用了哪种散列算法。如果指定了 md5,则创建版本 1.0 清单。
bart 允许将操作数用引号引起来。如果空格出现在子树和子树修饰符规范中,这特别重要。
支持下列操作数:
指定由 bart create 在控制系统上创建的清单。
指定由 bart create 在测试系统上创建的清单。
bart create 和 bart compare 命令将输出写入标准输出,并将错误消息写入标准错误。
bart create 命令生成系统清单。See bart_manifest(5).
如果使用 bart compare 命令对两个系统清单进行比较,则会生成一个文件差异列表。缺省情况下,比较输出会本地化。然而,如果指定了 –p 选项,则输出以适合进行程序处理的格式生成。
filename attribute control:xxxx test:yyyy
在 control-manifest 和 test-manifest 之间存在差异的文件的名称。For file names that contain embedded whitespace or newline characters, see bart_manifest(5).
在进行比较的清单之间存在差异的文件属性的名称。xxxx 是 control-manifest 中的属性值,yyyy 是 test-manifest 中的属性值。如果同一个文件的多个属性存在差异,则每个差异都将记录在单独的一行中。
支持以下属性:
文件的 ACL 属性。对于具有 ACL 属性的文件,此字段包含 acltotext() 的输出。
所有属性。
文件的校验和值。此属性仅为常规文件指定。如果关闭上下文检查,或者无法计算校验和,则此字段的值为 –。
符号链接的目标。
设备节点的值。此属性仅用于字符设备文件和块设备文件。
目录的修改时间,以秒为单位,从 1970 年 1 月 1 日 00:00:00 UTC 开始计算。
此项的所有者的数字组 ID。
链接的创建时间。
表示文件权限的八进制数。
文件的修改时间,以秒为单位,从 1970 年 1 月 1 日 00:00:00 UTC 开始计算。
以字节为单位的文件大小。
Type of file.
此项的所有者的数字用户 ID。
以下缺省输出显示 /etc/passwd 文件的属性差异。输出表明 size、mtime 和 contents 属性已发生变化。
/etc/passwd: size control:74 test:81 mtime control:3c165879 test:3c165979 contents control:daca28ae0de97afd7a6b91fde8d57afa test:84b2b32c4165887355317207b48a6ec7
filename attribute control-val test-val [attribute control-val test-val]*
与缺省格式中的 filename 相同。
每个文件在控制清单与测试清单之间存在差异的文件属性的说明。每个条目都包含每个清单中的属性值。See bart_manifest(5) for the definition of the attributes.
每行程序输出都描述单个文件的所有属性差异。
以下程序输出显示 /etc/passwd 文件的属性差异。输出表明 size、mtime 和 contents 属性已发生变化。
/etc/passwd size 74 81 mtime 3c165879 3c165979 contents daca28ae0de97afd7a6b91fde8d57afa 84b2b32c4165887355317207b48a6ec7
清单生成器返回以下退出值:
成功
处理文件时发生非致命错误;例如,权限问题
致命错误;例如,命令行选项无效
报告工具返回以下退出值:
未报告任何差异
找到了差异
执行比较时发生致命错误
以下命令行创建缺省清单,它包含 / 文件系统中的所有文件。–n 选项禁止计算校验和,这样会更快地生成清单。
bart create -n示例 2 为指定子树创建清单
以下命令行创建包含 /home/nickiso 子树中所有文件的清单。
bart create -R /home/nickiso示例 3 使用标准输入创建清单
The following command line uses output from the find(1) command to generate the list of files to be cataloged.find 输出用作指定了 –I 选项的 bart create 命令的输入。
find /home/nickiso -print | bart create -I示例 4 使用规则文件创建清单
以下命令行使用规则文件 rules 指定要在目录中列出的文件。为了获得一致且准确的结果,需要在比较清单时指定规则文件(请参见示例 7)。
bart create -r rules示例 5 比较两个清单并生成程序输出
以下命令行比较两个清单并生成适合进行程序解析的输出。
bart compare -p manifest1 manifest2示例 6 比较两个清单并指定要忽略的属性
以下命令行比较两个清单。不比较 dirmtime、lnmtime 和 mtime 属性。
bart compare -i dirmtime,lnmtime,mtime manifest1 manifest2示例 7 使用规则文件比较两个清单
以下命令行使用规则文件 rules 比较两个清单。
bart compare -r rules manifest1 manifest2
The MD5 & SHA-1 algorithms are currently considered weak for cryptographic use.These algorithms should be used only for compatibility with legacy manifest data.Manifests should be updated to use a SHA-2 family checksum when possible (sha256, sha384, or sha512).
有关下列属性的说明,请参见 attributes(7):
|
cksum(1)、digest(1)、find(1)、bart_manifest(5)、bart_rules(5)、attributes(7)
系统引导时可能会临时修改某些系统库的文件属性。为了避免触发误报,仅应在以下情况下比较清单:创建两个清单时系统处于相同的状态;即两个清单都是在单用户或多用户模式下创建的。
Support for Version 1.1 manifests, SHA checksums, and the –a option was added in Oracle Solaris 11.0.0.
The bart command was added in Solaris 10 3/05.