禁用无用账号是linux服务器最基础有效的安全措施,应优先锁定而非删除,通过usermod -l或改shell为/nologin禁用登录,同步加固关键文件权限与su/sudo策略,并建立定期巡检机制。

禁用无用账号是Linux服务器用户管理中最基础、最有效的安全措施之一。它能直接缩小攻击面,避免被利用为跳板或提权入口。重点不是“删不删”,而是“锁不锁”——多数系统账户不能删除,但必须锁定登录能力。
识别哪些账号该禁用
先查清系统里有哪些用户,再区分用途:
- 运行
cat /etc/passwd | cut -d: -f1列出所有用户名 - 重点关注默认安装的系统账户:如 games、ftp、sync、shutdown、halt 等,它们通常不需要交互式登录
- 执行
awk -F: '($3 == 0) { print $1 }' /etc/passwd确认 UID 为 0 的只有 root;若出现其他账户(如 admin、test),必须立即处理 - 用
awk -F: '($2 == "")' /etc/shadow检查空口令账号,存在即高危,需立刻设密码
安全锁定而非盲目删除
系统服务依赖部分账户存在(即使不登录),直接userdel可能破坏功能。推荐优先使用锁定方式:
- 用
usermod -L username锁定账号:在/etc/shadow密码字段前加!,禁止所有认证方式登录 - 或改其登录 Shell:
usermod -s /sbin/nologin username,阻止 shell 访问,但不影响服务调用 - 对长期不用的普通用户,也可用
chage -E 0 username设置账号过期,彻底禁用登录权限 - 慎用
userdel -r:仅适用于确认无任何关联服务、文件、定时任务的独立用户
加固关键账户与权限边界
锁定无用账号只是起点,还需同步收紧高权账户行为:
- 确保
/etc/passwd权限为 644,/etc/shadow必须为 600 或 400,防止非 root 读取哈希 - 用
chattr +i /etc/passwd /etc/shadow锁定文件本身(需 root 权限),防篡改(操作前确认备份) - 限制
su行为:编辑/etc/pam.d/su,添加auth required pam_wheel.so group=wheel,只允许 wheel 组成员切换 root - 检查
sudoers:运行visudo,删除%wheel ALL=(ALL) NOPASSWD: ALL这类宽泛配置,按需授权具体命令
建立常态化巡检机制
账号状态会随软件安装、更新动态变化,需定期验证:
- 每月执行一次扫描:
find /etc -name "passwd" -exec grep -v "/nologin\|/false" {} \; 2>/dev/null快速定位仍带可登录 shell 的非必要用户 - 结合
lastlog -b 90查看超 90 天未登录的账号,评估是否继续保留 - 将账号清理步骤写入部署脚本或 Ansible Playbook,新服务器初始化时自动执行
- 记录每次操作(谁、何时、禁用了哪个账号),便于审计追溯











