在Linux系统中,强制普通用户密码通常指管理员强制用户下次登录时修改密码、立即重置密码,或设置密码复杂度策略。以下为专业且常用的实现方式。

1. 强制用户下次登录时修改密码:使用passwd -e命令使现有密码立即过期。例如执行sudo passwd -e username,系统会提示该用户下次登录时必须先设置新密码。等效方法是用chage -d 0 username,将密码的“最后修改日期”设为0,同样强制下次登录修改密码。
2. 管理员直接强制设置新密码:使用sudo passwd username,按照提示输入两次新密码即可。此操作可立即改变用户密码,适合临时重置或初始化密码。若需生成高强度随机密码,可结合openssl rand或gpg --gen-random等工具。
3. 强制普通用户密码策略:通过配置/etc/security/pwquality.conf和/etc/pam.d/system-auth或/etc/pam.d/password-auth,可实现密码最小长度、包含大小写字母、数字、特殊字符等复杂度要求。例如设置minlen=12、dcredit=-1、ucredit=-1、lcredit=-1、ocredit=-1,再在PAM配置中添加pam_pwquality.so模块即可对普通用户生效。
4. 强制普通用户使用密码登录而非SSH密钥:需修改SSH配置文件/etc/ssh/sshd_config,设置PasswordAuthentication yes,并确保PubkeyAuthentication按需配置。若要强制特定用户,可在该文件中使用Match User username段,然后执行sudo systemctl restart sshd使配置生效。
5. 检测并强制无密码用户设置密码:使用awk -F: '($2==""){print $1}' /etc/shadow可列出不含密码(或密码为不可用)的普通用户。对这类用户,管理员应执行sudo passwd username为其设置新密码,或使用sudo passwd -u username解锁账户并强制建立密码。
6. 强制密码定期过期:通过chage命令管理密码老化策略,例如sudo chage -M 90 username设置密码最长有效90天,sudo chage -m 7 username设置最少使用天数,sudo chage -W 7 username设置过期前7天警告。这些设置会强制普通用户定期更换密码。
7. 锁定普通用户无法修改密码:如需强制用户不能修改密码(即密码由管理员全权控制),可执行sudo chage -l username查看状态,再使用sudo passwd -n 99999 username或将/etc/shadow中该用户的密码字段前加!或*锁定。但注意这与“强制设置密码”方向相反,需按实际需求选择。
综上所述,强制普通用户密码的核心命令包括passwd -e、chage、passwd,配合PAM和SSH配置可实现完整的密码强制与策略管理。生产环境中,建议先使用sudo passwd -S username检查用户密码状态,再执行相应操作,并确保所有修改通过sudo权限完成,以避免安全风险。

查看详情

查看详情