Google Compute Engine CentOS8实例sudo需主用户密码,无密码如何解决?
解决GCE CentOS8实例sudo需要密码的问题
嗨,我之前也碰到过这个情况,CentOS8在GCE上的默认sudo配置确实和CentOS7不一样,咱们一步步来搞定它:
第一步:通过串行控制台登录root(绕开sudo密码限制)
现在你陷入了“要sudo就得输密码,但不知道密码”的死循环,得先拿到root权限才行。GCE的实例支持通过串行控制台直接登录root:
- 打开Google Cloud控制台,找到你的CentOS8实例,点击「编辑」
- 滚动到「远程访问」部分,勾选「启用串行控制台连接」,然后保存设置
- 回到实例详情页,点击「连接」→「串行控制台」,在弹出的控制台窗口里输入
root并回车,就能直接登录root账户(不需要密码)
第二步:配置sudo免密权限
登录root后,咱们修改sudo的配置:
- 用
visudo命令打开sudoers配置文件(这个命令会自动检查语法,避免改错导致sudo失效):visudo - 找到下面这行默认配置:
把它改成:%wheel ALL=(ALL) ALL
(GCE创建的主用户默认就在wheel组里,这行配置能让整个wheel组的用户免密使用sudo)%wheel ALL=(ALL) NOPASSWD: ALL
如果你只想单独给primaryuser配置,也可以在文件末尾加一行:primaryuser ALL=(ALL) NOPASSWD: ALL - 按
Esc键,然后输入:wq回车保存退出。
第三步:验证效果
退出串行控制台,重新用SSH登录你的实例,现在试试sudo passwd或者sudo cat /var/log/messages,应该就不会再提示输入密码啦!
补充说明
CentOS7默认的sudoers配置里,wheel组直接设置了NOPASSWD权限,但CentOS8默认改成了需要验证密码,这就是你碰到差异的原因~
内容的提问来源于stack exchange,提问作者Vin
相关产品推荐
相关产品推荐

