最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Linux用户安全:定期清除无效账户与关联权限
时间:2026-07-03 10:06:46 编辑:袖梨 来源:一聚教程网
应识别UID≥1000、90天无登录且Shell为nologin/false、密码锁定或过期的账户,优先用passwd -l、usermod -s /usr/sbin/nologin、chage -E 0三步禁用,确认无服务依赖后再userdel -r删除,并同步收紧sudo、SSH等权限。
定期清理无效账户是Linux用户安全管理中最直接有效的加固手段之一。它不是“删掉就完事”,而是要识别准、禁用稳、删除慎,再配合权限收口,才能真正切断潜在攻击面。
怎么识别真正的无效账户
不能只看名字像不像“test”“demo”,也不能只查有没有家目录。关键看三点是否同时成立:
- UID ≥ 1000(普通用户范围),且不是你明确知道在用的业务账号
- 最近90天无成功登录记录(last -s "-90 days" | awk '{print $1}' | sort -u)
- shell为
/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):
- 锁定密码:sudo passwd -l 用户名
- 关闭交互式登录:sudo usermod -s /usr/sbin/nologin 用户名
- 设账户立即过期:sudo chage -E 0 用户名
这三步组合可彻底阻断认证路径,但保留账号结构和文件归属,既安全又可逆。
确认无依赖后再删除
删除前必须交叉验证四项:
- 该用户不在任何
crontab -l或/etc/cron.*中 - 没有运行中的进程:pgrep -u 用户名 返回为空
- 未被任何systemd service文件(
/etc/systemd/system/*.service)以User=指定 - 所属主组无其他成员(getent group 组名 输出仅含该用户名)
满足全部条件后,再执行: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 awk -F: '$3 >= 1000 {print $1}' /etc/passwd | xargs -I{} sh -c 'echo {}; sudo chage -l {} 2>/dev/null | grep -E "(Last password change|Account expires|Password expires)"'
每次操作前备份关键文件:sudo cp /etc/{passwd,shadow,group} /root/etc-backup-$(date +%F),出问题能秒级回退。
相关文章
- 清凉一夏 遗落圣迹 太阳帽收集日 07-10
- 《少年三国志》12.4.0版本全新上线 07-10
- 拆迁专家"希望先生"手把手教你"零元购"! 07-10
- 《王者传奇》本周全新灵兽——海马 07-10
- 7月10日 版本更新服务器维护公告 07-10
- 逃离后室突袭登陆Switch2 新增噩梦难度模式 07-10