[toc]
问题描述:
给red hat 6加了root密码后,也给普通用户加了sudo权限后,sudo yum update 输入root密码,显示Sorry, try again
解决方法:
您好,遇到这个问题很常见,请不要担心。这个错误提示“Sorry, try again”几乎总是意味着您输入的密码不正确,但它指的是您当前用户的密码,而不是root密码。
核心原因:理解 sudo
的工作原理
sudo
命令的设计理念是:让普通用户以自己的密码来临时获取root权限,而不是直接使用root密码。这样做更安全,因为:
- 不需要告知他人root密码。
- 所有通过
sudo
执行的操作都会被记录下来(在/var/log/secure
等文件中),便于审计。
所以,当您运行 sudo yum update
时,系统提示您输入的是您自己(当前普通用户)的密码,而不是root密码。
解决方案:请按照以下步骤排查
1. 确认您输入的是当前用户的密码
这是最常见的原因。请再次尝试,但这次输入您自己的用户密码,而不是root密码。
2. 验证您的用户确实在sudoers组中
您为普通用户加了sudo权限,但我们需要确认加得是否正确。请使用root用户执行以下命令来检查:
1 | # 切换到root用户,这里需要输入您刚设置的root密码 |
如果输出中包含 wheel
,说明配置正确。例如,如果用户名叫 john
:
1 | groups john |
如果您的用户不在 wheel
组中,您需要将其加入:
1 | usermod -aG wheel <您的普通用户名> |
3. 验证sudoers文件配置正确
即使加入了 wheel
组,也需要 /etc/sudoers
文件允许 wheel
组执行sudo。请使用 visudo
命令来安全地编辑和检查该文件(切记不要直接用普通编辑器修改此文件!)。
1 | # 切换到root后执行 |
在打开的文件中,找到这样一行:
1 | ## Allows people in group wheel to run all commands |
如果这一行前面有 #
注释符,请删除它。如果没有这一行,请添加它。
更宽松的配置(无需输入密码)是:
1 | %wheel ALL=(ALL) NOPASSWD: ALL |
但对于服务器安全来说,不建议使用 NOPASSWD
。
保存并退出(按 Esc
,然后输入 :wq
回车)。
4. 检查认证缓存(Authentication Token)
有时,多次输入错误密码后,可能会有短暂的锁定或缓存问题。您可以:
- 等待一两分钟再试。
- 打开一个新的终端窗口再试。
- 彻底退出当前用户会话(注销后再重新登录)。
5. 验证您的用户密码是否正确
如果您不确定自己的用户密码是什么,可以:
- 用root用户直接修改您的密码:然后使用新设置的密码来执行
1
2
3
4# 切换到root
su -
# 修改您的普通用户密码
passwd <您的普通用户名>sudo
。
总结与正确操作流程
- 永远记住:
sudo
要的是当前普通用户自己的密码。 - 确保普通用户已加入
wheel
组:usermod -aG wheel username
- 确保
/etc/sudoers
文件中的%wheel
配置行已启用。 - 使用
visudo
修改sudoers配置,不要用vi
或vim
直接编辑。
现在,请打开一个新的终端,尝试以下命令:
1 | sudo whoami |
系统会提示您输入密码,这时请输入您自己的登录密码。如果配置正确,命令会返回 root
。成功后,再运行 sudo yum update
就应该可以了。