pwdck 命令

用途

验证本地认证信息的正确性。

语法

pwdck{-p|-n |-t |-y }[-l]{ALL|User ...}

描述

pwdck 命令通过检查所有用户的定义或 User 参数指定的用户的定义来验证用户数据库文件中密码信息的正确性。 如果指定的用户超过一个,名字间必须有一个空格。

注意:该命令会将信息写入stderr

必须选择一个标志来指示系统是否应该尝试修复错误属性。 对于 /etc/passwd 文件中定义的本地用户,检查以下属性:

描述
ENTRY 确保每个条目可读并且它至少包含两个 :(冒号)。 如果指示系统修正错误,那么将废弃整个条目。
passwd 确保密码字段是一个 !(惊叹号)。 (感叹号)。 如果指示系统修正错误,它将密码字段中的信息传输至 /etc/security/passwd 文件,更新 /etc/security/passwd 文件中的 lastupdate 属性,然后用 ! 替换 /etc/passwd 文件中的密码字段。 通常,如果 /etc/security/user 文件中的 minalphaminotherminlen 的密码约束设为非零值,那么必须指定密码。
用户 确保用户名是唯一的不多于八个字节的字符串。 名字不能以 +(加号)、:(冒号)、-(减号)或 ~ (波浪号) 开始。 在字符串中不能包含 :(冒号),并且不能是 ALLdefault * 这些关键字。 如果指示系统修正错误,它会从 /etc/passwd 文件中除去用户的条目行。 如果用户名以符号 + 或 - 开始,那么此用户不是本地定义的用户,且不对他执行检查。

/etc/security/passwd 文件中检查的属性有:

描述
确保每行可读并且是节的一部分。 废弃任何无效行。
密码 如果系统中必需密码,确保 password 属性存在且不是空白。 如果指示系统修正错误,那么密码设为 *(星号),且废弃 lastupdate 属性。

通常,如果 /etc/security/user 文件中的 minalphaminother 密码约束设为非零值,那么必须指定密码。 如果用户的 flags 属性指定 NOCHECK 关键字,那么对这个用户而言密码不是必需的,且忽略检查。

lastupdate 对于有效的非空白的密码,确保 lastupdate 属性存在,而且它的时间在当前时间之前。 如果指示系统修正错误, lastupdate 属性是废弃还是更新,取决于 password 属性。 如果 password 属性不存在,或是一个空格,或是一个 * (星号),那么废弃 lastupdate 属性。 否则,lastupdate 时间设为当前时间。
标志 确保 flags 属性仅包含关键字 ADMINADMCHGNOCHECK。 如果指示系统修正错误,它删除所有的未定义的标志。

/etc/security/user 文件中检查的属性有:

描述
auth1 确保为本地用户定义的每个 SYSTEM;username条目在/etc/security/passwd文件中都有一个username条目。 如果指示系统修正错误,那么将采用以下格式对每个缺少的条目在 /etc/security/passwd 文件中添加节:
username:
          password = *         

如果 /etc/security/user 文件中缺少用户条目和缺省条目,系统假定以下值并在 auth1 上执行以下检查:

auth1 = SYSTEM;user                
注意: auth1属性已被弃用,不应再使用。
auth2 确保为本地用户定义的每个 authname;username条目在/etc/security/passwd文件中都有一个username条目。 如果指示系统修正错误,将为每个缺少的条目添加一个条目。

如果 /etc/security/user 文件中缺少用户条目和缺省条目,系统假定以下值并在 auth2 上执行以下检查:

auth2 = NONE                  

当指定 ALL 时,pwdck命令会确保/etc/security/passwd文件中的每个分节都与/etc/security/user文件中 SYSTEM;username条目的本地用户验证名称相对应。 如果指示系统修正错误,那么未与 /etc/security/user 文件中的用户名条目对应的节将从 /etc/security/passwd 文件中废弃。

更新 /etc/passwd 文件和 /etc/security/passwd 文件时,pwdck 命令锁定它们。 如果这两个文件之一被另一个进程锁定,pwdck 命令将为了这些文件被解锁而等候几分钟,如果这些文件没有被解锁则命令终止。

当前 pwdck 进程运行时,pwdck 命令检查以了解 /etc/passwd 文件和 /etc/security/passwd 文件是否已被另一个进程修改。 如果指示系统修正错误,pwdck 命令更新 /etc/passwd 文件和 /etc/security/passwd 文件,并且可能覆盖其他进程造成的任何更改。

注意: pwdck命令在修复错误并报告错误时,会禁用文件上的任何扩展访问控制列表 (ACL)。

pwdck 命令也检查以了解数据库管理安全性文件(/etc/passwd.nm.idx/etc/passwd.id.idx /etc/security/passwd.idx /etc/security/lastlog.idx)相对于系统安全性文件是最新的文件还是更新的文件。 请注意, /etc/security/lastlog.idx 可以不比 /etc/security/lastlog 更新。 如果数据管理安全文件已经过期了,就会出现一个警告消息指出 root 用户应该运行 mkpasswd 命令了。

通常, sysck 命令调用 pwdck 命令作为可信系统安装验证的一部分。 另外,root 用户或者安全组成员可输入此命令。

注意: auth2属性已被弃用,不应再使用。

标志

描述
-l 在整个运行期间锁定文件。
-n 报告错误但不修复。
-p 修复错误但不报告。
-t 报告错误,询问是否要修复。
-y 修复错误且报告。

安全性

访问控制:这个命令将执行 (x) 访问授权给 root 用户和安全组成员。 需要将该命令 setuid 到 root 用户,以读写认证信息,并具有 trusted computing base 属性。

访问的文件:

方式 文件
rw /etc/passwd
R /etc/security/user
rw /etc/security/passwd
R /etc/security/login.cfg

审计事件:

事件 信息
PASSWORD_Check 用户、错误/修正、状态
密码_Ckerr 文件/用户、错误、状态

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

示例

  1. To verify that all local users have valid passwords, enter:
    pwdck  -y ALL
    这将报告错误,并修正它们。
  2. 以确保用户ariel/etc/security/passwd文件中有一个有效字段,请输入
    pwdck  -y ariel

文件

描述
/usr/bin/pwdck 包含 pwdck 命令。
/etc/security/passwd 包含现行密码和安全性信息。
/etc/security/login.cfg 包含配置信息和密码限制。