linux用户账号锁定与解锁有五种方法:一、passwd命令加!前缀禁用密码;二、usermod禁用密码并设/sbin/nologin;三、直接编辑/etc/passwd改shell;四、创建/etc/nologin全局禁止登录;五、pam配置pam_tally2.so自动锁定。

如果您需要临时或永久禁止某个Linux用户登录系统,则可能是由于安全策略调整、账户审计或运维维护等实际需求。以下是多种可行的锁定及解锁用户账号的方法:
一、使用passwd命令锁定与解锁用户
该方法通过修改/etc/shadow文件中用户的密码字段,添加前缀!或!!来禁用密码认证,操作快捷且可逆性强。它仅影响基于密码的身份验证,不干扰SSH密钥登录等其他认证方式。
1、以root权限执行以下命令锁定指定用户名:passwd -l username
2、验证账户状态是否已锁定:passwd -S username,输出中出现LK标识即表示成功锁定
3、执行以下命令解锁用户:passwd -u username
二、使用usermod命令禁用密码并替换登录shell
该方法提供更彻底的访问控制:既禁用密码认证,又将用户默认shell设为/sbin/nologin或/bin/false,使系统拒绝为其分配交互式会话,即使密码正确也无法获得shell环境。
1、仅禁用密码认证:usermod -L username
2、同时禁用密码并设置非登录shell:usermod -s /sbin/nologin username
3、恢复原始shell并启用密码:usermod -s /bin/bash username,再执行usermod -U username
三、直接编辑/etc/passwd文件修改用户shell
此方法绕过命令行工具,直接修改用户记录中的登录shell字段,适用于无法运行usermod命令的受限环境。修改后立即生效,无需重启服务。
1、使用vi或nano打开用户数据库:vi /etc/passwd
2、定位目标用户行,例如:username:x:1001:1001::/home/username:/bin/bash
3、将末尾的/bin/bash替换为/sbin/nologin,保存退出
4、如需恢复,再次编辑该行,将/sbin/nologin改回原shell路径
四、创建/etc/nologin文件全局禁止普通用户登录
该方法用于系统级维护场景,通过创建特殊文件触发PAM机制,在系统启动或登录阶段拦截所有非root用户的交互式登录请求,常用于紧急维护或升级窗口期。
1、以root身份创建空文件:touch /etc/nologin
2、可选:向该文件写入提示信息,供用户登录时查看:echo “System maintenance in progress.” > /etc/nologin
3、解除全局禁止状态:rm -f /etc/nologin
五、配置PAM模块实现失败登录自动锁定
该方法基于PAM框架,通过pam_tally2.so模块对用户连续登录失败次数进行计数,并在达到阈值后自动锁定账户,属于主动防御型策略,适用于高安全要求环境。
1、编辑SSH认证配置:vi /etc/pam.d/sshd
2、在文件开头附近添加两行(顺序不可颠倒):auth [default=bad success=ok user_unknown=ignore] pam_tally2.so deny=3 unlock_time=600
3、添加账户控制行:account [default=good] pam_tally2.so
4、重置某用户失败计数:pam_tally2 –reset –user=username
本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报。
本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
文章版权归原作者所有,本站只做转载和学习。
声明:下载本站资源即同意用户协议,本站程序只是提供给开发者学习研究。





