在 Linux 系统中锁定用户账户可以通过多种方法实现,以下是常用的几种方式及其详细说明:
passwd
命令锁定密码(推荐)sudo passwd -l 用户名
bash
sudo passwd -u 用户名
usermod
命令锁定账户sudo usermod --expiredate 1 用户名
1970-01-01
,立即失效。bash
sudo usermod --expiredate "" 用户名
/etc/shadow
文件(手动)在 /etc/shadow
中找到相应用户行,在密码字段前添加 !
或 !!
:
sudo vipw -s # 安全编辑 shadow 文件
username:$6$...:19475:0:99999:7:::
username:!$6$...:19475:0:99999:7:::
!
或 !!
。chage
命令设置账户过期sudo chage -E0 用户名
1970-01-01
(等同于锁定)。bash
sudo chage -E -1 用户名 # 清除过期时间
sudo usermod -s /usr/sbin/nologin 用户名
This account is currently not available
。bash
sudo usermod -s /bin/bash 用户名
如果需要彻底禁止用户访问,可以同时:
1. 锁定密码:sudo passwd -l 用户名
2. 禁用 Shell:sudo usermod -s /usr/sbin/nologin 用户名
3. 禁止 SSH 登录(如有需要):
bash
echo "DenyUsers 用户名" | sudo tee -a /etc/ssh/sshd_config
sudo systemctl restart sshd
sudo passwd -S 用户名
username L 2023-01-01 0 99999 7 -1
(L
表示锁定)sudo
或 SSH 配置实现。bash
ps -u 用户名
killall -u 用户名 # 谨慎操作
根据需求选择合适的方法,通常 passwd -l
或 usermod -s /usr/sbin/nologin
已能满足多数场景。