pwdck 命令

用途

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

语法

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

描述

pwdck 命令通过检查 ALL 用户的定义或 User 参数指定的用户的定义,验证用户数据库文件中密码信息的正确性。 如果指定了多个用户,请在名称之间添加空格。

注: 此命令将其消息写入 stderr

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

描述
entry 确保每个条目都可读,并且至少包含两个: (冒号)。 如果指示系统修正错误,那么将废弃整个条目。
passwd 确保密码字段是 ! (惊叹号)。 如果您指示系统应该修正错误,那么它会将密码字段中的信息传输到 /etc/security/passwd 文件,更新 /etc/security/passwd 文件中的 lastupdate 属性,然后将 /etc/passwd 文件中的密码字段替换为 an ! 通常,如果 minalphaminother minlen 密码限制设置为 /etc/security/user 文件中的非零值,那么需要密码。
user 确保用户名是 8 字节或更少的唯一字符串。 它不能以 a + (加号) , a : (冒号) , a - (减号) 或 a ~ (代号) 开头。 它不能在字符串中包含: (冒号) ,并且不能是 ALLdefault* 关键字。 如果指示系统修正错误,它会从 /etc/passwd 文件中除去用户的条目行。 如果用户名以 + 或-符号开头,那么不会在本地定义用户,并且不会执行检查。

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

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

通常,如果在 /etc/security/user 文件中将 minalphaminother 密码限制设置为非零值,那么需要密码。 如果用户 flags 属性指定了 NOCHECK 关键字,那么此用户不需要密码,将忽略此检查。

lastupdate 确保存在有效非空白密码的 lastupdate 属性,并且其时间早于当前时间。 如果指示系统应修正错误,那么将根据 password 属性废弃或更新 lastupdate 属性。 如果 password 属性不存在,或者等于空白或 * (星号) ,那么将废弃 lastupdate 属性。 否则,lastupdate 时间设为当前时间。
flags 确保 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 文件中的每个节都对应于本地用户的认证名称 SYSTEM; /etc/security/user 文件中的username 条目。 如果指示系统应该修正错误,那么将从 /etc/security/passwd 文件中废弃与 /etc/security/user 文件中的用户名条目不对应的节。

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

pwdck 命令将检查 /etc/passwd 文件和 /etc/security/passwd 文件是否由另一个进程在当前 pwdck 进程运行时修改。 如果您指示系统应该修正错误,那么 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 属性,不应使用该属性。

标志

表 1. 标志
描述
-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
审计事件:
表 2。 审计事件:
事件 信息
PASSWORD_Check 用户、错误/修正、状态
PASSWORD_Ckerr 文件/用户、错误、状态
关注 RBAC 用户
RBAC 用户注意: 此命令可以执行特权操作。 只有特权用户才能执行特权限定的操作。 有关授权和权限的更多信息,请参阅安全中的特权命令数据库。 有关该命令的权限和授权列表,请参阅 "lssecattr命令或 "getcmdattr子命令。

示例

  1. 要验证所有本地用户是否具有有效密码,请输入:
    pwdck  -y ALL
    这将报告错误,并修正它们。
  2. 要确保用户 ariel/etc/security/passwd 文件中具有有效节,请输入:
    pwdck  -y ariel

文件

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