核心是用原生命令定位“有身份、无行为、有权限”的静默账户,聚焦三类高危僵尸账号:90天未登录的特权用户、shell禁用但密码有效的账户、无登录却拥SUID/SGID或sudo能力的服务账户。

审计长时间未登录的“僵尸”用户账号,核心是用系统原生命令快速定位“有身份、无行为、有权限”的静默账户,不依赖额外工具,也不靠人工翻查。
聚焦三类高危僵尸账号
别扫全量用户,优先盯住这三类风险最集中的账户:
- 90天未登录的特权用户:包括 UID=0 的 root、/etc/sudoers 中显式授权的用户、MySQL 中 Super_priv='Y' 或 Grant_priv='Y' 的账号
- Shell 禁用但密码仍有效的账户:/etc/passwd 中 shell 字段为 /usr/sbin/nologin 或 /bin/false,同时 /etc/shadow 中对应密码字段不是 * 或 !
- 服务账户拥有高危能力却从不登录:如 apache、redis 等 UID find / -perm -4000 结果中出现,但 lastlog -u apache 显示 “Never logged in”
用原生命令组合精准筛查
一行命令就能筛出关键线索,无需安装新软件:
Linux系统管理专家,覆盖12大模块:用户权限、SSH、存储、网络、systemd、防火墙、日志监控、备份恢复、TLS证书、Ansible、容器、IaC。提供配置、验证、加固、监控、备份、自动化、故障排查、回滚闭环。关键词:useradd、sudo、sshd_config、chmod、SEL...
- 查 90 天未登录的普通特权用户:lastlog -b 90 | awk '$6 != "Never" && $1 !~ /^(root|sync|shutdown|halt|operator|games|ftp)$/ {print $1}'
- 查 nologin 但密码有效的账户:awk -F: '($7 ~ /nologin|false$/ && $1 != "root") {print $1}' /etc/passwd | while read u; do grep -q "^$u:[^*:]" /etc/shadow && echo "$u"; done
- 查 MySQL 中高权限但长期沉默的账号:mysql -Nse "SELECT user,host FROM mysql.user WHERE (Super_priv='Y' OR Grant_priv='Y') AND user NOT IN ('root','mysql.sys')",再结合 performance_schema.accounts 查 last_login(若启用)
输出带处置建议的审计报告
光列用户名没用,报告要能直接推动动作:
- 每条结果标注风险等级:红色(立即冻结)、黄色(需业务确认)、绿色(已白名单备案)
- 附可执行命令,例如:backup_user: 127天未登录, Super_priv=Y → 执行 mysql -e "REVOKE SUPER ON *.* FROM 'backup_user'@'%'; FLUSH PRIVILEGES;"
- 脚本运行前自动备份关键状态:记录 /etc/shadow 哈希摘要、mysql.user 权限快照,便于回溯
嵌入日常运维节奏
审计不是一次性任务,必须固化进流程才有效:
- 通过 cron 每日凌晨 2 点自动执行,结果邮件发送至安全组、DBA 和系统负责人三方
- 扫描结果存入统一日志路径(如 /var/log/user-audit/20260916.log),保留至少 180 天
- 每月初人工复核上月冻结账号日志,确认无误后再执行最终清理

















