首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我无法访问oracle linux服务器中的root用户。

我无法访问oracle linux服务器中的root用户。
EN

Unix & Linux用户
提问于 2023-05-20 11:24:00
回答 2查看 45关注 0票数 1

我在服务器上配置Ansible,其中我在所有服务器上创建了一个Ansible用户,并给予他们sudo访问权限,因此每当我使用Ansible用户向另一个服务器ssh时,就不应该向我询问密码。我成功地在两台服务器上配置了它,但是当我通过更改/etc/sudoers/文件在另一台服务器上进行配置时,系统变得没有响应,然后我重新启动了我的终端,现在当我试图将服务器登录到根用户时,它正在抛出一个错误。

代码语言:javascript
运行
复制
$ sudo su

/etc/sudoers: syntax error near line 121 <<< sudo: parse error in /etc/sudoers near line 121 sudo: no valid sudoers sources found, quitting sudo: unable to initialize policy plugin
EN

回答 2

Unix & Linux用户

发布于 2023-05-20 12:43:58

您已经破坏了sudoers文件,因此sudo将拒绝任何访问。如果您有根密码,那么您可以使用它来修复这个问题:

代码语言:javascript
运行
复制
su -
visudo

如果没有,则需要使用救援磁盘启动系统,并以这种方式重置sudoers文件。要复杂得多。

不要在不使用/etc/sudoers的情况下手动编辑visudo文件,因为它执行语法检查以防止这种情况。

顺便说一句,没有必要使用sudo su (它使用sudo获取根权限,然后要求su (已经作为root用户)再次授予它们)。sudo -s或者sudo -i是完全足够的。

票数 2
EN

Unix & Linux用户

发布于 2023-05-20 14:15:05

如果您没有根密码,但您的用户帐户位于wheel组(或Debian/Ubuntu的sudo组),那么还有一件事需要尝试:

代码语言:javascript
运行
复制
pkexec visudo

它应该提示您输入密码(比sudo更详细),然后允许您编辑/etc/sudoers文件。

如果您没有剩余的任何活动根会话,并且无法获得它们(无论是使用sudo还是pkexec),那么恐怕没有一些停机时间就无法修复它。

我不熟悉Oracle Cloud。但是,由于您显然是在云服务器上,并且有几个这样的服务器,修复它的最后一种方法是使用云管理接口强制关闭服务器,然后暂时断开虚拟系统磁盘与问题云服务器的连接,并将该虚拟磁盘作为额外的磁盘呈现给第二个云服务器。然后,您可以将问题服务器的根文件系统挂载到例如第二个服务器(“修复服务器”)中的/mnt,并运行visudo -f /mnt/etc/sudoers来修复语法错误。完成此操作后,您将从修复服务器卸载和断开磁盘,并将其返回问题服务器。

如果云管理接口没有允许您对VM执行此操作所必需的功能,则必须与云操作员(即Oracle?)联系。以寻求支持。他们应该非常熟悉这种类型的问题:您肯定不是第一个因为错误而失去对云服务器的根访问权的人。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/746449

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档