AIX系统下root用户密码状态检测命令修正问询
解决AIX系统root密码状态检查命令的问题
可以用以下awk命令实现需求:
awk '/^root:/{flag=1; hold=$0} flag && /password =/{ if ($3 ~ /^{ssha512}/) { print "ok" } else { print hold "\n " $0 } flag=0 }' /etc/security/passwd
命令逻辑说明
- 匹配以
root:开头的行时,标记进入root用户块(flag=1),同时保存该行内容到变量hold - 在root用户块内,匹配到
password =开头的行时,做判断:- 如果密码值是
{ssha512}开头的哈希,直接输出ok - 如果密码是
*,就把之前保存的root:行和当前的password行一起输出
- 如果密码值是
- 处理完root的password字段后,把
flag设为0,避免误匹配其他用户的配置
原命令的问题推测
你之前的命令大概率只写了匹配哈希密码的分支,没有对password = *的情况做输出处理,或者没有正确捕获root用户块的完整内容,导致无密码场景下没有触发输出逻辑。
内容的提问来源于stack exchange,提问作者medisamm
相关产品推荐
相关产品推荐

