You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AIX服务器全账号密码最后更新时长查询方法咨询

在AIX服务器生成账号密码最后更新时长列表

AIX系统中没有/etc/shadow文件时,可通过pwdadm工具结合shell脚本批量计算所有账号的密码最后更新时长,具体操作如下:

核心原理

pwdadm -q <用户名>输出的lastupdate字段是UNIX时间戳(即从1970-01-01 00:00:00 UTC到密码更新时间的总秒数),通过计算当前时间戳与该值的差值,再转换为天数即可得到目标结果。

批量生成列表的脚本

创建如下shell脚本(适用于ksh/bash环境):

#!/bin/ksh
# 遍历所有本地用户
for user in $(lsuser | awk '{print $1}'); do
    # 获取用户的密码更新时间戳,忽略无密码用户的错误信息
    last_update=$(pwdadm -q "$user" 2>/dev/null | grep 'lastupdate' | awk -F= '{print $2}')
    # 仅处理有有效时间戳的用户
    if [ -n "$last_update" ]; then
        current_ts=$(date +%s)
        # 计算天数差(每天86400秒)
        days=$(( (current_ts - last_update) / 86400 ))
        echo "$user - $days days"
    fi
done

脚本调整说明

  • 如果只想统计普通用户(通常UID≥1000),将遍历用户的命令替换为:
    for user in $(lsuser -a id | awk '$2 >= 1000 {print $1}'); do
    
  • 执行脚本前需确保有足够权限(建议用root用户执行)

手动单用户查询方法

若只需查询单个用户,可直接执行以下命令:

# 获取时间戳
last_update=$(pwdadm -q user01 | grep lastupdate | awk -F= '{print $2}')
# 计算并输出天数
current_ts=$(date +%s)
days=$(( (current_ts - last_update) / 86400 ))
echo "user01 - $days days"

内容的提问来源于stack exchange,提问作者Matt Tin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 15:22:12