我需要进入在虚拟机上远程运行的Redhat框的恢复模式。
我使用RedHat 5 64位企业版。
我login到使用SSH的框中。 我可以重新启动使用重新启动命令,但我需要知道,如果我将能够SSH到它,因为我正在远程使用它,无法通过用户界面login。
真正的问题是,我在根目录上做了一个chown -R $USER / 。
我试图把这个作为一个没有意识到后果的尝试,做一些工作,即使使用sudo也不行。
我中途杀了它。 但是,由于这个愚蠢,我不能使用sudo。
我已经读过,我可以在救援模式下做一些事情,但我不明白如何进入救援模式远程。 我不能重新安装Linux,这不是一个可能的select。
无论如何,我可以找回我的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
你不能ssh进入恢复模式,因为ssh将不会运行。 你需要一种方式来控制台。 如果这是一台虚拟机,并且您拥有该主机,则应该有一些方法可以连接到主机并在控制台上运行。 如果这是一个像AWS这样的服务,那么你运气不好,你需要恢复一些其他的东西,比如build立一个新的实例,并从坏的实例中分离根卷,并将其安装在新的实例上以修复它。
Redhat使用Systemd来启动/停止作业。
如果您处于救援模式,则使用rescue或emergency目标。
您需要configurationsshd(及其依赖关系)以在这些运行级别(= systemd)中运行。
在这里您可以find更多关于systemd微调的信息。 一些Redhat 文档也可以使用。
问题已经解决了,这个问题可以结束了。 但是,我不能通过SSH做到这一点。 我必须closures虚拟框上的实例并重新启动它。 通过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)
这将设置为root并解决sudo错误