sysck 命令

用途

在安装和更新过程中检查清单信息。

语法

sysck { -i | -u } [ -R RootPath ] [ -N ] [ -v ] [ -s SaveFile ] [ -O { r | s | u }] -f 文件 ProductName { tcbck 标志 }

所有 tcbck 命令标志都对该命令有效。

描述

注: 所有 tcbck 命令标志都对 sysck 命令有效。 此特征提供了与 V3.1 的兼容性。

sysck 命令对照从安装和更新介质中抽取的文件来检查文件定义,并更新软件重要产品数据(SWVPD)数据库。 The 锡斯克 command does not recognize the following special characters in file names: grave accent (`), quotation marks (', "), backslash (\), caret (^), parentheses ((, )), vertical bar (|), braces ({, }), brackets ([, ]), greater than and less than symbols (<, >), colon (:), and comma (,). If a file name contains one of these characters, the 锡斯克 command fails.

sysck 命令主要在软件产品的安装和更新过程中使用。

在使用 -i 标志调用时,sysck 命令根据文件定义检查抽取的文件的属性,更新 SWPCD,并试图修订文件中可能存在的错误。

File 参数是包含 文件定义的节文件名。 此类文件的一个示例是 /etc/security/sysck.cfg 文件,尽管 syschk 命令不使用这个文件。 sysck 命令检查类型属性设为 FILE 的文件的大小、链接、符号链接、所有者、组和方式属性。 当使用 -v 标志和 -i 标志调用时,sysck 也会检查文件校验和的值。

sysck 命令会更新 SWVPD 数据库中每个文件的文件名、产品名、类型、校验和以及大小。

为了修正错误, sysck 命令将已安装或已更新文件的属性重置为 File 节文件中定义的值,但某些属性除外,如 "Fixing Errors"中所述。

当使用 -u 标志调用时,sysck 命令将每个属于软件产品 ProductName 组成部分的文件的条目从 SWVPD 数据库中除去。 sysck 命令也按照 SWVPD 数据库中的定义删除每个文件的任何硬链接和符号链接。

标志

描述
-f 文件 指定包含文件定义的节文件名。
-i 检查软件产品文件的正确安装。 根据文件定义更新 SWVPD 数据库,并尝试修订发现的错误。
-N 指定不应更新 SWVPD 数据库。
-O { r | s | u } 指定要更新 SWVPD 的哪一部分,如下:
R
指定 SWVPD 的根部分。
指定 SWVPD 的 /usr/share 部分。
u
指定 SWVPD 的 /usr 部分(缺省)。
描述
-R RootPath 使用 RootPath 作为根以代替“/”。
-s SaveFile 制作 VPD(Vital Product Data :重要产品数据)中当前内容的快照,并以节格式将其保存到 SaveFile 指定的文件。 用 -u 选项调用。 用这个标志不会对数据库进行操作。 必须与 -f 选项一起使用。 例如:
sysck -i -s /tmp/save.inv -f /tmp/real.inv bos.rte.shell
-U 从 SWVPD 中删除文件条目,并删除硬链接和符号链接。
-v 验证校验和是否正确。
ProductName 指定正在检查的可安装的软件产品或选项。

环境变量

描述
INUTREE 环境变量 INUTREE 只有下列四种有效值:
NULL
与未设置 INUTREE 相同。
M
指定 SWVPD 的根部分。
指定 SWVPD 的 /usr/share 部分。
u
指定 SWVPD 的 /usr 部分(缺省)。

INUTREE 可以用来代替 -OTree 标志。

INUNOVPD 环境变量 INUNOVPD 可以为空,也可以设置为 1。 如果设置为 1 ,那么 sysck 不会更新 SWVPD。 INUNOVPD 可用来代替 -N 标志。
INUVERIFY 如果将环境变量 INUVERIFY 设置为 1,那么 sysck 会验证节文件中的校验和属性是否正确。 INUVERIFY 可以用来代替 -v 标志。

文件定义

描述
ACL 文件的访问控制表。 如果该值为空白,那么除去 acl 属性。 如果不指定值,那么命令会根据访问控制表中描述的格式计算值。

属性会将 x(执行)访问权仅授权给 root 用户和安全组的成员。 该命令应该 setuid 为 root 用户,并且具有可信计算库属性。

CLASS 文件的逻辑组。 必须指定一个值,因为不能计算得到该值。 值为 ClassName [ClassName]。
校验和 文件的校验和。 如果该值为空白,那么除去 checksum 属性。 如果不指定值,那么该命令根据 sum 命令指定的格式计算值。 该值为 sum -r 命令的输出,包含空格。
文件组。 如果该值为空白,那么除去 group 属性。 如果不指定值,那么该命令计算一个值,该值可以是组标识,也可以是组名。
方式 文件方式。 如果该值为空白,那么除去 mode 属性。 如果不指定值,那么该命令计算值,它可以是八进制数字或字符串(rwx),并且具有 TCBSUIDSGID 以及 SVTX 属性。
所有者 文件所有者。 如果该值为空白,那么除去 owner 属性。 如果不指定值,那么该命令会计算值,它可以是用户标识或用户名。
大小 文件的大小,以字节为单位。 如果该值为空白,那么除去 size 属性。 在 size 字段中的 VOLATILE 值表示文件大小会更改(因此不能给出校验和值)。 NOSIZE 值表示文件为 0 长度。 如果不指定值,那么该命令会计算值,该值为十进制数字。
target 允许符号链接和硬链接在清单中以单独节存在。 target 文件定义指向链接源的完整路径名,例如:
/etc/foo --> /usr/bar

目标/usr/bar.

TYPE 文件类型。 该值不能为空。 如果不指定值,那么该命令会计算值,它可以是 FILEDIRECTORYFIFOBLK_DEVCHAR_DEVLINKMPX_DEVSYMLINK 关键字。
xacl 对扩展访问控制表的添加。 因为不能计算该值,所以值必须指定为扩展访问控制表中的单个条目。 该属性仅在使用 -i 标志时有效。 有关格式的信息,请参阅上面的 acl 文件定义。

修正错误

为了修订错误,sysck 命令会将已安装或已更新的文件的属性重新设置为在 File 节文件中定义的值,下列的属性例外。对于这些属性,sysck 命令的操作如下所述:

描述
链接 创建任何缺少的硬链接。 如果存在链接指向本定义中未列出的文件,那么删除该链接。
PROGRAM 如果该属性包含在 File 节文件中,sysck 会调用该程序。 如果发生错误,会显示出一条消息,但不采取其他的操作。
symlinks 创建缺少的符号链接。 如果存在链接指向本定义中未列出的文件,那么删除该链接。

安全性

特权控制:只有 root 用户才能运行此命令。

RBAC 用户和可信AIX用户请注意:此命令可执行特权操作。 只有特权用户才能执行特权限定的操作。 有关授权和权限的更多信息,请参阅安全中的特权命令数据库。 要获取与此命令相关联的特权和权限的列表,请参阅 lssecattr 命令或 getcmdattr 子命令。

示例

  1. 使用 installp 命令安装的产品在其映像中提供库存文件。 要将定义添加到库存数据库并检查许可权,链接和校验和等, 请输入:
    sysck  -i  -f dude.rte.inventory dude.rte
    其中dude.rte.inventory将如下所示:
    /usr/bin/dude.exec:
       class = apply,inventory,dude.rte
       owner = bin
       group = bin
       mode = 555
       type = FILE
       size = 2744
       checksum = "04720        3"
  2. 要除去已从系统中除去的产品的任何文件链接,并从库存数据库中除去这些文件,请输入:
    sysck  -u  -f dude.rte.inventory dude.rte

文件

描述
/etc/objrepos/inventory 在根上指定软件产品文件的名称和位置。
/usr/lib/objrepos/inventory /usr 文件系统里指定软件产品文件的名称和位置。
/usr/share/lib/objrepos/inventory /usr/share 文件系统里指定软件产品文件的名称和位置。