Как подключиться по SSH после удаленного перезапуска Redhat и войти в режим восстановления?

Как подключиться по SSH после удаленного перезапуска Redhat и войти в режим восстановления?

Мне нужно войти в режим восстановления моего RedHat Box, который запущен удаленно на виртуальной машине.

Я использую RedHat 5 64-бит Enterprise Edition.

Я вошел в ящик с помощью SSH. Я могу перезапустить его с помощью команды restart, но мне нужно знать, смогу ли я подключиться к нему по SSH, так как я использую его удаленно и не могу войти через пользовательский интерфейс.

Настоящая проблема в том, что я сделал это 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 для запуска/остановки заданий.

Если вы находитесь в режиме спасения, он использует цели rescueили emergency.

Вам необходимо настроить 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)

Это установит uid на root и устранит ошибку sudo.

Связанный контент