usrck 命令
用途
验证用户定义的正确性。
语法
描述
usrck 命令通过检查所有用户或者由 User 参数定义的用户的定义,验证用户数据库文件里用户定义的正确性。 如果指定的用户超过一个,名字间必须有一个空格。 必须选择一个标志来指示系统是否应该尝试修复错误属性。
命令首先检查 /etc/passwd 文件里的条目。 如果您指出系统应修正错误,那么会报告并禁用重复的用户名。 重复的标识符仅被报告,因为没有系统修复。 如果条目有少于六个独立冒号分隔的字段,那么条目仅被报告而不被修复。 usrck 命令下一步检查其他文件里规定用户的属性。
usrck 命令验证 /etc/passwd文件里列出的每一个用户名在 /etc/security/user文件、 /etc/security/limits 文件和 /etc/security/passwd 文件中是否有节。 usrck 命令也验证 /etc/group 文件里列出每一个组名在 /etc/security/group 文件里是否有节。 usrck 命令用 -y 标志为丢失的用户名和组名在安全文件里创建节。
- 此命令将其消息写到标准错误。
- 如果已设置 domainlessgroups 属性,那么 usrck 命令将为轻量级目录访问协议 (LDAP) 用户抛出错误。
以下列出所有用户属性,已被检查的属性用符号表明。
| 项 | 描述 |
|---|---|
| account_locked | 不检查。 usrck 命令设置属性为 True 并禁用帐户。 |
| admgroups | 检查 admgroups 在用户数据库中是否有定义,如果指出系统需要修复错误,命令除去不在数据库中的所有组。 |
| auditclasses | 检查 auditclasses 在 /etc/security/audit/config 文件里是否为用户定义。 如果指出系统应该修复错误,命令删除 /etc/security/audit/config 文件中未定义的 auditclass。 |
| auth1 | 检查基本的认证方法。 如果方法不是 NONE 或者 SYSTEM,就必须在 /etc/security/login.cfg
文件里有定义,程序的属性必须存在且能被 root 用户执行。 如果指出系统应该修复错误,那么只要发现一个错误,系统就禁用用户帐户。 注: 不推荐使用并且不应使用 auth1 属性。
|
| auth2 | 检查第二认证方法。 如果方法不是 NONE 或者 SYSTEM,就必须在 /etc/security/login.cfg
文件里有定义,程序的属性必须存在且能被 root 用户执行。 系统不修复。 注: 不推荐使用 auth2 属性,不应使用该属性。
|
| core | 确保值是切合实际的。 如果不是,该命令会将值复位为最小值,200 块。 |
| core_hard | 确保值是切合实际的。 如果不是,该命令会将值复位为最小值,200 块。 |
| cpu | 确保值是切合实际的。 如果不是,该命令会将值复位为最小值,120 秒。 |
| cpu_hard | 确保值是切合实际的。 如果不是,该命令会将值复位为最小值,120 秒。 |
| DATA | 确保值是切合实际的。 如果不是,该命令会将值复位为最小值,1272 块(636K)。 |
| data_hard | 确保值是切合实际的。 如果不是,该命令会将值复位为最小值,1272 块(636K)。 |
| dictionlist | 检查字典文件列表。 如果指出系统应该修复错误,命令删除用户数据库中不存在的所有字典文件。 |
| expires | 不检查。 |
| fsize | 确保值是切合实际的。 如果不是,该命令会将值复位为最小值,200 块。 |
| fsize_hard | 确保值是切合实际的。 如果不是,该命令会将值复位为最小值,200 块。 |
| gecos | 不检查。 |
| histexpire | 确保值是切合实际的。 如果表明系统应该修复错误,太大的值设置为最大可能值,太小的值设置为最小可能值。 |
| histsize | 确保值是切合实际的。 如果表明系统应该修复错误,太大的值设置为最大可能值,太小的值设置为最小可能值。 |
| 主 | 通过读方式和搜索方式检查本地目录的存在和可访问性。 如果指出系统应该修复错误,那么只要发现一个错误,系统就禁用用户帐户。 |
| 标识 | 检查用户标识的唯一性。 如果指出系统应该修复错误,命令删除 /etc/passwd 文件中所有无效的条目。 |
| login | 不检查。 |
| loginretries | 检查用户尝试登录不成功的次数是否多于允许的数目。 如果是,系统禁用用户帐户。 |
| logintimes | 确保时间说明字符串是有效的。 如果指出系统应该修复错误,那么只要发现一个错误,系统就禁用用户帐户。 |
| 项 | 描述 |
|---|---|
| maxage | 确保值是切合实际的。 如果表明系统应该修复错误,太大的值设置为最大可能值,太小的值设置为最小可能值。 |
| maxexpired | 确保值是切合实际的。 如果表明系统应该修复错误,太大的值设置为最大可能值,太小的值设置为最小可能值。 |
| maxrepeats | 确保值是切合实际的。 如果表明系统应该修复错误,太大的值设置为最大可能值,太小的值设置为最小可能值。 |
| minage | 确保值是切合实际的。 如果表明系统应该修复错误,太大的值设置为最大可能值,太小的值设置为最小可能值。 如果 minage 属性值比 maxage 属性值大,系统也显示要修复错误。 |
| minalpha | 确保值是切合实际的。 如果表明系统应该修复错误,太大的值设置为最大可能值,太小的值设置为最小可能值。 |
| mindiff | 确保值是切合实际的。 如果表明系统应该修复错误,太大的值设置为最大可能值,太小的值设置为最小可能值。 |
| minlen | 确保值是切合实际的。 如果表明系统应该修复错误,太大的值设置为最大可能值,太小的值设置为最小可能值。 |
| minother | 确保值是切合实际的。 如果表明系统应该修复错误,太大的值设置为最大可能值,太小的值设置为最小可能值。 如果 minage 属性值加 maxage 属性值比密码大小最大值更大,系统也会显示要修复错误。 |
| 名称 | 检查用户名的唯一性和复合性。 名字是由八个或更少的字符组成的唯一的字符串。 名字不能以 +(加号)、:(冒号)、-(减号)或 ~ (波浪号) 开始。 以 +(加号)或 -(减号)开始的名字已经假定为 NIS(网络信息服务)域中的名字,不允许有任何进一步的处理。 不能在字符串中包含冒号(:),也不出现所有或者缺省的关键字。 如果指出系统应该修复错误,只要发现一个错误,系统就禁用用户帐户且删除 /etc/passwd 文件中任何无效的条目。 usrck 命令验证 /etc/passwd 文件里列出的每一个用户名在 /etc/security/user 文件、/etc/security/limits 文件和 /etc/security/passwd 文件中是否有节。 当已有定义却丢失时,命令为每一个用户添加节。 usrck 命令另外验证 /etc/group 文件里列出的每一个组名在 /etc/security/group 文件里是否有节。 |
| nofiles | 确保值是切合实际的。 如果不是,将值复位为最小值,200。 |
| nofiles_hard | 确保值是切合实际的。 如果不是,将值复位为最小值,200。 |
| pgrp | 检查用户数据库里基本组的存在。 如果指出系统应该修复错误,那么只要发现一个错误,系统就禁用用户帐户。 |
| pwdchecks | 检查外部密码限制方法的列表。 如果指出系统应该修复错误,命令删除用户数据库中不存在的所有方法。 |
| pwdwarntime | 确保值是切合实际的。 如果不是,系统重新将值设为 maxage 和 minage 之间的值。 |
| rlogin | 不检查。 |
| rss | 检查以确保值是切合实际的。 如果不是,该命令会将值复位为最小值,128 块 (64KB)。 系统未设置该值。 |
| rss_hard | 检查以确保值是切合实际的。 如果不是,该命令会将值复位为最小值,128 块 (64KB)。 系统未设置该值。 |
| shell | 通过执行方式检查 shell 的存在和可访问性。 如果指出系统应该修复错误,那么只要发现一个错误,系统就禁用用户帐户。 |
| 堆栈 (stack) | 检查以确保值是切合实际的。 如果不是,该命令会将值复位为最小值,128 块 (64KB)。 |
| stack_hard | 检查以确保值是切合实际的。 如果不是,该命令会将值复位为最小值,128 块 (64KB)。 |
| su | 不检查。 |
| sugroups | 检查用户数据库文件中 sugroups 的存在。 如果指出系统应该修复错误,命令删除数据库中没有的所有组。 |
| sysenv | 不检查。 |
| tpath | 如果 tpath=always,检查以确保shell 的属性被标记为可信进程。 如果指出系统应该修复错误,那么只要发现一个错误,系统就禁用用户帐户。 |
| ttys | 在用户数据库文件中检查 ttys 的存在。 如果指出系统应该修复错误,命令删除数据库中没有的所有的 ttys。 |
| usrenv | 不检查。 |
如果修复涉及禁用用户帐户,那么请使用 chuser 命令将 account_locked 属性的值复位为 False。 可以用系统管理界面工具 (SMIT) 来运行 chuser 命令,输入:
smit chuserRoot 用户或者安全组里的成员可以通过除去 account_locked 属性或设置 account_locked 属性为 False 来再次恢复用户帐户。 Root 用户的帐户不能被 usrck 命令禁用。
一般情况下,sysck 命令调用 usrck 命令作为对信任系统安装验证的一部分。 如果 usrck 命令在用户数据库里找到任何一个错误,root 用户或安全组成员就执行 grpck 命令和 pwdck 命令。
usrck 命令检查数据管理的安全文件 /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 命令了。
usrck 命令检查指定的用户是否登录。 如果用户因为太多不成功的登录尝试或密码过期不能登录, usrck 命令发布警告消息表明为什么不能登录。 如果指出系统应该修复错误,只要用户因为以上的原因不能登录,系统就禁用用户的帐户。
| 条件 | 描述 | 原因 |
|---|---|---|
| 1 | 用户帐户被锁定。 | 用户的 account_locked 属性被设置为 true。 |
| 2 | User account is expired. | 用户的 expires 属性所设置的值(过期时间)已过期。 |
| 3 | User has too many consecutive failed login attempts. | 用户的 unsuccessful_login_count 值大于用户的 loginretries 值。 |
| 4 | 用户没有密码。 | 用户的 password 字段在 /etc/password 或 /etc/security/password 中为“*”。 |
| 5 | 不允许用户在此日期/时间登录。 | 当前的日期/时间不在用户的 logintimes 属性所定义的允许时间内。 |
| 6 | /etc/nologin 文件存在。 | /etc/nologin 文件阻止非 root 用户登录。 |
| 7 | 用户密码已过期,只有系统管理员才能更改它。 | 用户的密码已过期并且 ADMIN 密码标志已设置。 |
| 8 | 用户被拒绝登录到主机。 | 用户的 hostallowedlogin 和 hostsdeniedlogin 属性不允许访问当前主机。 |
| 9 | 应用程序拒绝用户访问。 | 用户的 login、rlogin 和 su 属性被设置为 false,并且 rcmds 属性被设置为拒绝。 如果这些属性值中至少有一个但不是所有属性值都拒绝授权,那么认为用户可以访问部分系统。 |
| 10 | 用户被拒绝登录到终端。 | 用户的 ttys 属性不允许访问当前终端。 系统被视为对于用户是部分可访问的。 |
如果还指定了 -b 标志,那么输出由两个字段组成,即用户名和以制表符分隔的 16 位位掩码。 位掩码中的每个数字对应于上述“用户可访问性条件”表中的条件,最右边的数字表示条件 1。 如果条件的位的位置被设置为 1,那么对于该用户有关此条件的检查失败。 在输出中保留额外的数字以供将来使用。
# usrck -l testusr1 testusr2
3001-689 The system is inaccessible to testusr1, due to the following:
User account is locked
User denied login to terminal.
3001-689 The system is inaccessible to testusr2, due to the following:
User account is expired.
User has too many consecutive failed login attempts.
User denied login to host.标志
退出状态
本命令返回以下退出值:
| 项 | 描述 |
|---|---|
| 重大安全事件数量 | 用户定义文件是合适的。 |
| > 0 | 发生错误,或者一个或多个用户定义文件中有错误。 返回以下错误代码:
|
安全性
访问控制:这个命令将执行 (x) 访问授权给 root 用户和安全组成员。 对于 root 用户命令是 setuid,并且有可信计算库属性。
访问的文件:
| 方式 | 文件 |
|---|---|
| R | /etc/passwd |
| R | /etc/security/user |
| rw | /etc/security/group |
| rw | /etc/group |
| rw | /etc/security/lastlog |
| rw | /etc/security/limits |
| rw | /etc/security/audit/config |
| rw | /etc/security/login.cfg |
审计事件:
| 事件 | 信息 |
|---|---|
| USER_Check | 用户、属性错误、状态 |
示例
文件
| 项 | 描述 |
|---|---|
| /usr/bin/usrck | 指定 usrck 命令的路径。 |
| etc/passwd | 包含基本用户属性。 |
| /etc/security/user | 包含用户的扩展属性。 |
| /etc/group | 包含组的基本属性。 |
| /etc/security/group | 包含组的扩展属性。 |
| /etc/security/lastlog | 包含用户最后一次登录的属性。 |
| /etc/security/limits | 包含用户进程资源限制。 |
| /etc/security/audit/config | 包含审计系统配置信息。 |
| /etc/security/login.cfg | 包含配置信息。 |