本节包含以下参考信息:
每个清单文件项均是单独的一行,具体取决于文件类型。每个项都以 fname(即文件名)开头。为了避免分析文件名中嵌入的特殊字符所导致的问题,已对文件名进行了编码。有关更多信息,请参见BART Rules 文件格式。
后续字段表示以下文件属性:
文件类型,可能值为:
B 表示块设备节点
C 表示字符设备节点
D 表示目录
F 表示文件
L 表示符号链接
P 表示管道
S 表示套接字
以字节为单位的文件大小。
表示文件权限的八进制数。
文件的 ACL 属性。对于具有 ACL 属性的文件,它包含了 acltotext() 的输出。
此项的属主的数字用户 ID。
此项的属主的数字组 ID。
目录上次修改的时间,以秒为单位,从 1970 年 1 月 1 日 00:00:00 UTC(国际协调时间)开始计算。
链接上次修改的时间,以秒为单位,从 1970 年 1 月 1 日 00:00:00 UTC 开始计算。
文件上次修改的时间,以秒为单位,从 1970 年 1 月 1 日 00:00:00 UTC 开始计算。
文件校验和的值。此属性仅为常规文件指定。如果关闭上下文检查,或者无法计算校验和,则此字段的值为 –。
符号链接的目标。
设备节点值。此属性仅用于字符设备文件和块设备文件。
有关 BART 清单的更多信息,请参见 bart_manifest(4) 手册页。
bart 命令的输入文件为文本文件。这些文件由行组成,行中指定了要包括在清单中的文件和要包括在报告中的文件属性。同一个输入文件可同时在两项 BART 功能中使用。工具将忽略以 # 开头的行、空白行以及包含空格的行。
输入文件包含三种类型的指令:
子树指令,带有可选的模式匹配修饰符
CHECK 指令
IGNORE 指令
<Global CHECK/IGNORE Directives> <subtree1> [pattern1..] <IGNORE/CHECK Directives for subtree1> <subtree2> [pattern2..] subtree3> [pattern3..] subtree4> [pattern4..] <IGNORE/CHECK Directives for subtree2, subtree3, subtree4> |
所有指令均会按顺序进行读取,后面的指令可能会覆盖前面的指令。
每行都有一个子树指令。指令必须以绝对路径名开头,后面跟有零个或多个模式匹配语句。
bart 命令使用 CHECK 和 IGNORE 语句定义要跟踪或忽略的属性。每个属性都有一个关联的关键字。
acl
all
contents
dest
devnode
dirmtime
gid
lnmtime
mode
mtime
size
type
uid
all 关键字是指所有文件属性。
BART 所用的 rules 文件规范语言是用于表示非标准文件名的标准 UNIX 引用语法。嵌入的制表符、空格、换行符或特殊字符以八进制格式编码,以保证工具能够读取文件名。这种不一致的引用语法会阻止在命令管道中正确处理某些文件名,如包含嵌入的回车的文件名。使用 rules 规范语言可表达复杂的文件名过滤条件,这些条件如果仅使用 shell 语法会很难并且无法有效表达。
有关 BART rules 文件或 BART 所用的引用语法的更多信息,请参见 bart_rules(4) 手册页。
在缺省模式下,bart compare 命令会检查系统上安装的除已修改的目录时间标记 (dirmtime) 外所有文件,如以下示例所示:
CHECK all IGNORE dirmtime |
如果提供了 rules 文件,则全局指令 CHECK all 和 IGNORE dirmtime 会按照以上顺序自动前置到 rules 文件之前。
将返回以下退出值:
成功
处理文件时出现非致命错误,如权限问题
出现致命错误,如无效的命令行选项
详细输出为缺省输出,已本地化并出现在多行中。详细输出已经过国际化并具有可读性。如果使用 bart compare 命令对两份系统清单进行比较,则会生成一个文件差异列表。
例如:
filename attribute control:xxxx test:yyyy |
在控制清单和测试清单中各不相同的文件的名称。
在进行比较的清单中各不相同的文件属性的名称。xxxx 是控制清单的属性值,yyyy 是测试清单的属性值。如果同一个文件中的多个属性出现差异,则每个差异都将记录在单独的一行中。
下面是 bart compare 命令的缺省输出的示例。/etc/passwd 文件中出现属性差异。输出指明 size、mtime 和 contents 属性已发生变化。
/etc/passwd: size control:74 test:81 mtime control:3c165879 test:3c165979 contents control:daca28ae0de97afd7a6b91fde8d57afa test:84b2b32c4165887355317207b48a6ec7 |
如果在运行 bart compare 命令时使用 -p 选项,则会生成程序输出。此输出以适合程序操作的格式生成。程序输出可以由其他程序轻松分析并且旨在用作其他工具的输入。
例如:
filename attribute control-val test-val [attribute control-val test-val]* |
与缺省格式中的 filename 属性相同
每个文件在控制清单和测试清单中不同的文件属性的说明
有关 bart 命令支持的属性的列表,请参见Rules 文件属性。
有关 BART 的更多信息,请参见 bart(1M) 手册页。