Linux 修改 Sudo 密码报错?这一篇就够
关键词:
passwd、pam_pwquality、密码强度、sudo 密码忘了、WSL
碰到 无效的密码:密码未通过字典检查 或 密码小于 8 个字符 别慌,按下面的顺序处理,90% 的情况第 1 步就能解决。
🚀 三秒判断你是哪种情况
| 你的情况 | 跳转 |
|---|---|
| sudo 还能用,只是改密码被拒 | → 方案一 |
| sudo 完全用不了,密码忘了 | → 方案二 |
| 用的是 WSL | → 方案三 |
方案一:sudo 还能用 ✨
1.1 设一个合规密码(推荐)
强密码 = 口诀 + 拼接,例如:
WoAi2024@XiaTian # 我爱2024年的夏天
TongShi@JuMao2024 # 同事养了一只橘猫
直接:
bash
passwd
按提示输入旧密码 + 两次新密码即可。
1.2 不想用复杂密码?放宽规则
bash
sudo cp /etc/security/pwquality.conf /etc/security/pwquality.conf.bak
sudo nano /etc/security/pwquality.conf
改成(或者在前面加值):
ini
minlen = 6
dcredit = 0
ucredit = 0
lcredit = 0
ocredit = 0
保存即生效 ,不用重启。再 passwd 就行。
1.3 用脚本一次性设(绕过检查)
bash
echo "用户名:你的密码" | sudo chpasswd
chpasswd 不走 PAM,多短都行,适合自动化运维。
方案二:sudo 锁死了 🔧
只能走 GRUB 单用户模式 ,需要 物理机或云控制台。
Step 1 启动时长按 Shift(BIOS)/ Esc(UEFI)进入 GRUB → 选默认内核按 e。
Step 2 找到 linux ... ro quiet splash 这一行,改成:
linux ... rw quiet splash init=/bin/bash
按 Ctrl+X 启动。
Step 3 进入 root shell 后执行:
bash
mount -o remount,rw /
passwd username # 改密码
# 忘了用户名就执行:
# usermod -aG sudo username Debian/Ubuntu
# usermod -aG wheel username RHEL/CentOS
exec /sbin/init
重启后用新密码登录即可。
方案三:WSL 专属 🪟
3.1 普通改密码
bash
passwd
3.2 报错 Authentication token manipulation error
WSL 默认禁用了密码登录,绕过方法:
PowerShell 里执行:
powershell
wsl --shutdown
wsl -u root
WSL 里执行:
bash
passwd 你的用户名
exit
回到 PowerShell 重启 WSL 即可。
3.3 关闭 sudo 密码弹窗(可选)
bash
sudo visudo
# 末尾加:
你的用户名 ALL=(ALL) NOPASSWD: ALL
📝 一句话总结
还能 sudo →
passwd不行就改/etc/security/pwquality.conf;进不去 → GRUB 进单用户模式
passwd;WSL →
wsl -u root改。
觉得有用?点赞收藏防走丢 👇