远程重启Redhat后如何SSH进入恢复模式?

远程重启Redhat后如何SSH进入恢复模式?

我需要进入在虚拟机上远程运行的 redhat box 的恢复模式。

我使用的是RedHat 5 64位企业版。

我使用 SSH 登录了该框。我可以使用重新启动命令重新启动,但我需要知道我是否能够通过 SSH 连接到它,因为我正在远程使用它并且无法通过 UI 登录。

真正的问题是,我已经chown -R $USER /在根目录上做了一个。

我尝试了这个方法,但没有意识到后果,为了让某些东西工作起来,即使使用 sudo 也不起作用。

我在中途将其终止。但是,由于这个愚蠢的行为,我无法使用 sudo。

我读到过我可以在救援模式下做一些事情,但我不明白如何远程进入救援模式。我无法重新安装 Linux,这不是一个可行的选择。

有什么办法可以恢复我的 sudo 权限?

到目前为止,这样做还不起作用:

chown root:root /usr/bin/sudo
chown: changing ownership of `/usr/bin/sudo': Operation not permitted
sudo chown root:root /usr/bin/sudo
sudo: must be setuid root

答案1

您无法通过 ssh 进入恢复模式,因为 ssh 不会运行。您需要一种方法来进入控制台。如果这是一台虚拟机,并且您拥有主机,那么应该有某种方法可以连接到主机并进入控制台。如果这是像 AWS 这样的服务,那么您就没那么幸运了,您需要以其他方式恢复它,例如构建一个新实例,从坏实例中分离根卷并将其安装在新实例上以修复它。

答案2

Redhat 使用 Systemd 来启动/停止作业。

如果您处于救援模式,它会使用rescueemergency目标。

您需要配置 sshd(及其依赖项)以便在这些运行级别(= systemd 术语中的目标)上运行。

这里您可以找到有关 systemd 微调的更多信息。一些 Redhat文档也可能有用。

答案3

问题已解决,此问题可以关闭。但是,我无法通过 ssh 执行此操作。我不得不关闭虚拟机上的实例并重新启动它。通过 ssh 执行此操作仍有待讨论。

如何通过重新启动 rhel5 实例来解决问题:

1.Boot the system into single user mode (do this by pressing esc on the boot screen. you will get a terminal on the boot screen after doing this)
2.do chmod 0440 /etc/sudoers
Which should look like -r--r----- 1 root root 5882 Nov 19 18:03 /etc/sudoers
3.chown root:root /usr/bin/sudo
4.chmod 4111 /usr/bin/sudo
5.chmod 0440 /etc/sudoers
6.chmod 0770 /var/bin/sudo/$USERNAME (note: you may have to use /var/run/sudo/$USERNAME if /var/bin does not exist)
7.Reboot the machine in runlevel-5. (type init 5)

这将 setuid 为 root 并解决 sudo 错误

相关内容