终端使用sudo时密码正确却遭拒并收异常回复,su root正常求助
解决sudo验证失败(密码正确却遭戏谑回复)的问题
嘿,你遇到的这个情况完全匹配CVE-2021-3156(俗称Baron Samedit)漏洞的被利用特征——这个漏洞藏了好几年,影响范围覆盖sudo 1.8.2到1.8.31p2,以及1.9.0到1.9.5p1的版本(对应Ubuntu 16.04/18.04/20.04这类主流发行版的默认sudo版本)。一旦漏洞被触发,攻击者能篡改sudo的行为,让你输对密码也过不了验证,甚至返回恶意戏谑的提示;而su root走的是另一套权限验证逻辑,所以不受影响。
下面给你一步步的排查和修复方案:
第一步:确认你的sudo版本
先搞清楚自己的sudo是不是在受影响范围内,终端执行:
# 如果sudo还能勉强执行版本查询 sudo --version # 要是sudo完全用不了,就先切root再查 su root -c "sudo --version"
如果版本落在刚才说的区间里,那基本就是这个漏洞搞的鬼了。
第二步:紧急修复方案
方案1:通过su root升级sudo
既然su root能正常用,先切换到root权限:
su root
然后根据你的系统发行版执行升级命令:
- Debian/Ubuntu系:
apt update && apt install --only-upgrade sudo
- RHEL/CentOS系:
yum update sudo
升级完退出root(敲exit),再试试sudo,应该就能正常验证了。
方案2:临时限制sudo权限(如果升级暂时行不通)
要是因为网络问题没法升级,先临时修改sudoers配置降低风险:
- 切到root后,一定要用
visudo编辑sudoers文件(避免语法错误锁死权限):
visudo
- 可以先注释掉其他用户/组的sudo授权,只保留root的:
# 保留这一行 root ALL=(ALL:ALL) ALL # 注释掉其他类似 %sudo ALL=(ALL:ALL) ALL 的行,前面加#
- 保存退出后,测试sudo是否能正常工作。
第三步:检查系统是否被入侵
漏洞被利用后,系统很可能被植了后门,升级完sudo还得做这些检查:
- 验证sudo二进制文件的完整性:
# Debian/Ubuntu用这个 su root -c "dpkg -V sudo" # RHEL/CentOS用这个 su root -c "rpm -V sudo"
如果输出里有带S(大小改变)、M(权限改变)的文件,说明sudo程序被篡改了,得重新安装sudo。
- 排查异常进程和登录日志:
# 找可疑进程,把suspicious换成你觉得不对劲的关键词 su root -c "ps aux | grep -v grep | grep suspicious" # 查看登录和sudo操作日志 su root -c "cat /var/log/auth.log"
要是发现陌生登录记录或奇怪进程,建议彻底清理系统,必要时重装更稳妥。
最后提醒一句:这个sudo漏洞危害特别大,一旦确认受影响,优先升级到安全版本,平时也要做好防护——比如禁用root远程登录、开防火墙、定期更新系统。
内容的提问来源于stack exchange,提问作者Obiwan Kenoobi
相关产品推荐
相关产品推荐

