首先识别系统中不需要保留的用户账户,可通过以下命令查看所有用户(排除系统内置用户,如root、bin等):
cut -d: -f1 /etc/passwd
或结合grep过滤出非系统用户(UID≥1000的普通用户):
awk -F: '$3 >= 1000 {print $1}' /etc/passwd
此外,需重点关注长期未登录、空口令或拥有root权限的账户(后续步骤会详细说明)。
若账户暂时不用但可能后续需要,建议锁定而非直接删除,避免误操作。常用命令:
sudo passwd -l 用户名
sudo usermod -s /sbin/nologin 用户名
sudo passwd -S 用户名 # 输出中“LK”表示锁定
锁定后,账户仍存在于系统中,但无法登录。
对于确认不再使用的账户(如废弃的服务账户、离职人员账户),需彻底删除:
sudo userdel -r 用户名
-r参数会同步删除用户的家目录(如/home/用户名)和邮件池文件(/var/spool/mail/用户名)。-r参数:sudo userdel 用户名
sudo groupdel 用户组名
删除账户后,需检查系统中是否残留该用户的文件,避免占用磁盘空间或泄露敏感信息:
-r参数删除,需手动移除:sudo rm -rf /home/用户名
sudo rm -f /var/spool/mail/用户名
/tmp、/var/tmp等临时目录,删除属于该用户的文件。清理后,需通过以下设置减少无用账户的产生:
adm、lp、sync等),防止被恶意利用:sudo usermod -s /sbin/nologin 账户名
/etc/login.defs文件配置密码有效期(如最长90天、最短0天、最小长度8位):sudo vim /etc/login.defs
# 修改以下参数
PASS_MAX_DAYS 90
PASS_MIN_LEN 8
chattr命令锁定/etc/passwd、/etc/shadow等文件:sudo chattr +i /etc/passwd /etc/shadow
解锁时用chattr -i。sudo)。mysql用户)。