清理废弃高权限账号核心是“识别准、处置稳、不误删”,需三步交叉验证:查UID=0账号仅保留root;筛默认但无用系统账号;查长期未登录且无业务关联的高权限账户。

清理服务器中废弃的默认高权限账号,核心是“识别准、处置稳、不误删”。重点不是删得快,而是先确认哪些账号真没必要、哪些看似默认实则被服务依赖、哪些UID=0但非root——这些才是风险点。
识别真正的高权限废弃账号
高权限 ≠ UID为0就该删,而是指具备提权能力又长期闲置、无业务关联的账户。需三步交叉验证:
- 查UID为0的账号:awk -F: '$3 == 0 {print $1}' /etc/passwd —— 仅保留root,其余如
admin、system、toor等必须核查来源(是否由第三方软件或误操作创建) - 筛默认但无用的系统账号:awk -F: '$3 >= 1 && $3 —— 重点关注
games、gopher、ftp等,现代系统基本不用;而syslog、sshd、systemd-network等为服务必需,不可删 - 检查是否被sudo或cron依赖:运行grep -r "username" /etc/sudoers* /etc/cron* 2>/dev/null 和 systemctl list-units --type=service | grep username,避免删掉正在被脚本或服务调用的账户
安全处置:禁用优先,删除审慎
对确认废弃的高权限账号,严禁直接userdel -r。应分两阶段操作:
-
先禁用(观察期):
sudo passwd -l username(锁定密码)sudo usermod -s /usr/sbin/nologin username(禁用登录shell)sudo chage -E 0 username(设账户立即过期)
禁用后持续监控2–3天:journalctl -u systemd-logind --since "2 days ago" | grep username,确认无服务报错或登录尝试 -
再清理(留痕备份):
若观察无异常,执行sudo userdel -r username(-r同时删家目录和邮件池)
删除前务必备份:sudo tar -czf /backup/removed_$(date +%F)_${username}.tar.gz /home/${username} 2>/dev/null
同步记录到审计日志:echo "$(date): REMOVED high-priv account ${username} (UID: $(id -u ${username} 2>/dev/null))" >> /var/log/security_audit.log
加固后续动作
清理只是起点,防止同类问题复发需配套动作:
-
锁定关键账号文件:执行
sudo chattr +i /etc/passwd /etc/shadow /etc/group,防未授权篡改(恢复用chattr -i) -
禁用所有默认交互式shell:对剩余系统账号统一设为
/usr/sbin/nologin,命令:awk -F: '$3>=1 && $3 -
季度空组与高权限组扫描:定期运行
awk -F: '($4==0) {print $1}' /etc/group查GID=0组,并用getent group wheel | cut -d: -f4确认wheel组成员是否最小化


















