应识别UID≥1000、90天无登录且Shell为nologin/false、密码锁定或过期的账户,优先用passwd -l、usermod -s /usr/sbin/nologin、chage -E 0三步禁用,确认无服务依赖后再userdel -r删除,并同步收紧sudo、SSH等权限。
定期清理无效账户是Linux用户安全管理中最直接有效的加固手段之一。它不是“删掉就完事”,而是要识别准、禁用稳、删除慎,再配合权限收口,才能真正切断潜在攻击面。
不能只看名字像不像“test”“demo”,也不能只查有没有家目录。关键看三点是否同时成立:
/sbin/nologin或/bin/false,且/etc/shadow中密码字段为*或!(已被锁定)或已过期(chage -l 用户名 | grep "Password expires")系统自带的daemonsyslogsshd等低UID账号,即使不登录也不建议动——它们是服务依赖主体,删错可能中断日志、SSH等基础功能。
对疑似无效账户,优先执行三步禁用,观察1–2天系统日志是否异常(journalctl -u systemd-logind -n 50 或 grep "Invalid user" /var/log/auth.log):
这三步组合可彻底阻断认证路径,但保留账号结构和文件归属,既安全又可逆。
删除前必须交叉验证四项:
crontab -l或/etc/cron.*中/etc/systemd/system/*.service)以User=指定满足全部条件后,再执行:sudo userdel -r 用户名(-r才删家目录;新手建议先省略,手动检查/home/用户名和/var/spool/mail/用户名后再删)。
清理只是起点,权限最小化才是常态:
/etc/sudoers里非运维人员的ALL=(ALL) ALL行,改用/etc/sudoers.d/下按组白名单授权PermitRootLogin no和PasswordAuthentication no已在/etc/ssh/sshd_config中启用每次操作前备份关键文件:sudo cp /etc/{passwd,shadow,group} /root/etc-backup-$(date +%F),出问题能秒级回退。