Linux 修改 Sudo 密码报错?这一篇就够

Linux 修改 Sudo 密码报错?这一篇就够

关键词:passwdpam_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 改。

觉得有用?点赞收藏防走丢 👇