密码正确却提示su: incorrect password,主因是/bin/su缺失suid权限(应为-rwsr-xr-x),修复命令为sudo chmod u+s /bin/su;其次检查pam的pam_wheel.so限制、root账户是否锁定(passwd -s root)、以及wheel组归属和输入环境干扰。

密码没错却提示 su: incorrect password,这在 Linux 运维中很常见。问题通常不在于密码本身,而是认证机制被某些配置或权限限制住了。下面从高频原因出发,给出可直接操作的排查路径。
检查 /bin/su 是否具备 SUID 权限
这是最常被忽略、也最容易修复的一点。su 命令必须以 root 身份运行才能读取 /etc/shadow,所以必须带 suid 位(rws):
- 执行
ls -l /bin/su,正常应显示:-rwsr-xr-x 1 root root ... /bin/su - 如果看到的是
-rwxr-xr-x(即没有 s),说明 su 无法提权,所有密码验证都会失败 - 修复命令:
sudo chmod u+s /bin/su - 注意:不要用
a+s,避免非 root 用户也能触发 su,存在安全风险
确认 PAM 配置是否启用 wheel 限制
很多发行版(如 CentOS/RHEL)默认通过 PAM 强制要求只有 wheel 组成员才能 su 到 root:
- 查看
/etc/pam.d/su,检查是否存在这一行:auth required pam_wheel.so use_uid - 再看
/etc/login.defs中是否有:SU_WHEEL_ONLY yes(如有,建议注释掉) - 确认当前用户是否在 wheel 组:
groups或id -nG - 若不在,加入即可:
sudo usermod -aG wheel $USER
验证 root 账户是否被锁定或禁用
即使密码正确,root 若处于锁定状态,su 也会统一报“密码错误”:
- 运行
sudo passwd -S root,输出中第二列应为 P(表示密码可用) - 若显示 LK(Locked)或 NP(No password),说明 root 不可登录
- 解锁命令:
sudo passwd -u root(仅当被锁时使用) - 补充:部分系统默认禁用 root 密码(如 Ubuntu),此时应改用
sudo -i,而非 su
留意键盘与输入环境干扰
看似荒谬,但真实高频——尤其在物理终端或远程串口登录场景:
- 小键盘(Num Lock)关闭时,数字键可能输入方向键或功能字符,导致密码错位
- 尝试按一次 Num Lock 键,观察指示灯是否亮起;或改用主键盘区数字键重试
- 在 SSH 终端中,检查终端类型是否异常(如
$TERM为 unknown),可临时设为export TERM=xterm-256color - 中文输入法残留也可能干扰,切换到英文输入状态再输密码











