CentOS 7修改用户名后sudo密码失效,无root权限如何解决?
我之前也碰到过一模一样的情况,改完用户名后sudo突然不认密码了,其实都是些环境或权限配置的小问题,不用慌,一步步来排查解决:
第一步:重新登录SSH会话
你当前的SSH连接是在修改用户名之前建立的,会话里的环境变量(比如USER、HOME这类)还停留在旧用户的状态,sudo验证时很容易出现用户信息混淆。直接退出当前连接,用新用户名重新登录,再试sudo命令,输入你原来的密码就行——修改用户名不会改变用户密码,这一步大概率能解决问题。如果重新登录后还是不行,检查用户组权限
执行groups命令,看看输出里有没有wheel组——CentOS默认只有加入wheel组的用户才能使用sudo权限。如果你的新用户不在wheel组里,可能是修改用户名时意外丢失了附加组权限(虽然usermod -l默认不会移除附加组,但偶尔会出现异常)。
这时候可以用pkexec命令给自己添加wheel组权限:pkexec usermod -aG wheel newUsername执行后会弹出密码验证框,输入你的用户密码即可,完成后退出再重新登录,sudo应该就能正常使用了。
如果还是不行,检查sudoers配置
有些场景下,系统会给特定用户单独配置sudo权限(比如在/etc/sudoers或者/etc/sudoers.d/目录下的文件里写了oldUsername ALL=(ALL) ALL),改完用户名后这条配置就失效了。
首先你可以查看sudoers的内容(wheel组用户有权限读取):cat /etc/sudoers或者检查sudoers.d目录下的配置文件:
ls /etc/sudoers.d/ cat /etc/sudoers.d/*如果发现有旧用户名的条目,用
pkexec编辑sudoers文件:pkexec visudo把里面的
oldUsername替换成你的新用户名,保存退出后,sudo就能正常工作了。
内容的提问来源于stack exchange,提问作者AlanRivers

