tcbck { -n | -p | -t| -y } [ -i ] [-o] { ALL | tree | { Name ... Class ... } }
tcbck -a -f File | PathName Attribute = Value ...
或
tcbck -d -fFile | { PathName ... | Class ... }
或
tcbck -l /dev/filename /dev/filename
tcbck 命令通过检测在 /etc/security/sysck.cfg( sysck 数据库)文件中定义的文件安装来审计系统的安全状态。/etc/security/sysck.cfg 文件之中的每个文件定义可以包含一个或多个描述正确安装的属性。当不带标记和参数调用时,tcbck 命令打印其语法摘要。
tcbck 数据库通常定义作为可信计算库的一部分的所有文件和程序,但是 root 用户或安全组的成员可以选择只定义那些认为与安全相关的文件。
tcbck 命令有两种操作方式:检测方式和更新方式。下面是它们各自的描述。
在检测方式中,tcbck 命令检测已安装文件的定义。可以通过指定 ALL 值来检测 sysck 数据库(/etc/security/sysck.cfg 文件)中的所有文件定义,或通过指定 tree 值检测文件系统树中的所有文件。如果想要检测特定文件,可以使用 Name 参数来给出单个文件的路径名或给出 Class 参数将若干文件打成一个由类名定义的逻辑包,例如 audit。必须从以下选择其一:ALL 或 tree 值,或由 Class 或 Name 参数标识的一个或多个文件。
如果 tree 值为选择条件,则检测所有在文件系统树中的文件来确保所有相关文件已在 sysck 数据库中定义。对定义在 tcbck 数据库中的文件则按其定义检测。不在 tcbck 数据库中的文件一定不可:
如果 tcbck 命令以检测方式运行并带有 tree 值和 -t 标记时出现错误,该命令会提供一个出错消息,并提示您确定如何或是否应纠正该错误。如果决定不删除该文件或关闭非法许可,则将提示您确定更新该数据库。如果请求更新,系统提供缺少的信息,诸如文件名、链接或未注册的设备名。
还必须包括一个标记(-n、-p、-t、-y)来指定检测方式并标识错误处理方法。如果文件 /etc/security/sysck.cfg 中有一个重复节,将报告一个错误,但并不修正。
更新关键产品数据库(VPD)包括定义 VPD 管理器每一个文件的 type、checksum 和 size 属性。该信息用于验证正确的安装。如果这些属性未在 -f File 中定义,则将在程序安装或更新时计算它们。checksum 属性将用一个专门为 VPD 管理器定义的方法来计算。 有关文件属性的更多信息,请参阅修正错误。
在更新时修改的文件定义仅是指示文件为可信计算库(TCB)的一部分的新定义。File 参数是一个节文件,包括 tcbck 格式的文件定义,在文件 /etc/security/sysck.cfg 中定义。当更新完成时,按节文件中的文件定义检测文件,并修正和报告错误。
要求 setuid 或 setgid 特权的程序必须在 tcbck 数据库里,否则当 tcbck 命令以检测方式运行时这些特权会被清除。
在更新方式中,tcbck 命令为 File、PathName 或 Class 参数所指定的文件添加(-a)、删除(-d)或修改 /etc/security/sysck.cfg 文件中的文件定义。Class 参数允许您将若干文件打成一个由类名定义的逻辑包,例如 audit。tcbck 命令还删除 /etc/security/sysck.cfg 文件中指定节。
在更新方式中,tcbck 命令(-l)为指定的 /dev 条目增加或修改在 /etc/security/sysck.cfg 文件中定义的 /dev/ 条目。该标记应由管理员运行,用来添加新创建的并为 sysck.cfg 文件所信任的设备。在新设备未添加到 sysck.cfg 文件时,tree 选项生成未注册设备的警告。
-l 标记为命令行上列出的每一 /dev/ 条目创建一个节。节的信息来自 /dev 条目的当前状态。节包括:
设备名 | /dev/ 条目名 |
---|---|
文件类型 | FILE、DIRECTORY、FIFO、SYMLINK、BLK_DEV、CHAR_DEV 或 MPX_DEV |
所有者标识 | 所有者名 |
组标识 | 组名 |
许可权 | 所有者、组和其他人的读/写/执行许可权。SUID、SGID、SVTX 和 TCB 属性位 |
目标 | 如果文件为符号链接,将列出目标文件。 |
要以 -a 标记添加或修改的文件定义可以在命令行上指定,或在文件中以 Attribute=Value 语句指定。可使用下列属性:
可通过创建或修改 /etc/security/sysck.cfg 文件中的 sysck 节来添加、删除或修改 tcbck 命令的属性。 可使用下列属性:
有关这些属性的更多信息,请参阅 /etc/security/sysck.cfg 文件,有关典型节的信息,请参阅示例。
如果包含了无值的属性,则该命令试图从要改变的文件中计算该值。type 属性是强制性的,但其它不必指定。
要修正错误,tcbck 命令通常将属性复位为已定义值。对于下列属性,命令按如下所述修改其操作:
如果使用 -t 标志和 tcbck 命令,会提示请您决定修正错误。如果回答是,则修正错误。如果给出其它任何答复,则不修正错误。
访问控制:该命令仅授予 root 用户和安全组的成员执行(x)访问权。该命令应 setuid 到 root 用户,并有可信计算库属性。
存取的文件:
方式 | 文件 |
---|---|
r | /etc/passwd |
r | /etc/group |
r | /etc/security/user |
rw | /etc/security/sysck.cfg |
x | /usr/bin/aclget |
x | /usr/bin/aclput |
x | /usr/bin/sum |
审计事件:
事件 | 信息 |
---|---|
TCBCK_Check | 文件、错误、状态 |
TCBCK_Update | 文件、功能 |
tcbck -a /bin/boo acl checksum class=audit group owner\ program=/bin/boock
产生的节将包含之前所给出的属性,未定义的属性都会插入计算值。数据库将包含如下的节:
/bin/boo: acl = checksum = 48235 class = audit group = system owner = root program = /bin/boock type = FILE
属性值添加到安装定义,但不检测正确性。program 属性值来自命令行,checksum 属性值用 checksum 程序计算,所有其它除 acl 之外的值,从文件 i-node 计算而来。
/etc/passwd: type = FILE owner = root group = system size = 1234,VOLATILE
tcbck -d /bin/boo
tcbck -d audit
tcbck -y ALL
tcbck -a sysck treeck_novfs=/calvin,/hobbes
tcbck -a sysck treeck_nodir=/home/john
tcbck -a sysck setuids=jfh,jsl setgids=developers
tcbck -l /dev/foo /dev/bar
/usr/bin/tcbck | 指定到 tcbck 命令的路径。 |
/etc/security/sysck.cfg | 指定到系统配置数据库的路径。 |
aclget 命令、grpck 命令、installp 命令、pwdck 命令、sum 命令、usrck 命令。
AIX 5L Version 5.2 General Programming Concepts: Writing and Debugging Programs 中的 Software Vital Product Data (SWVPD)。
《AIX 5L V5.2 系统用户指南:操作系统与设备》中的『访问控制表』,讨论访问控制表的格式并提供一个示例。
关于用户的识别和认证、任意访问控制、可信计算库以及审计的详细信息,请参阅《AIX 5L V5.2 安全指南》中的『安全管理』。