遠端重啟Redhat後如何透過SSH進入恢復模式?

遠端重啟Redhat後如何透過SSH進入恢復模式?

我需要進入在虛擬機器上遠端運行的紅帽盒子的恢復模式。

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

我使用 SSH 登入該盒子。我可以使用 restart 命令重新啟動,但我需要知道是否能夠透過 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 微調的更多資訊。一些紅帽文件或許還可以用。

答案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)

這會將 uid 設定為 root 並解決 sudo 錯誤

相關內容