Назад | Перейти на главную страницу

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

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

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

Я вошел в ящик с помощью SSH. Я могу перезапустить, используя команду перезапуска, но мне нужно знать, смогу ли я подключиться к нему по 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

Вы не можете использовать ssh в режиме восстановления, так как ssh не будет работать. Вам нужен способ добраться до консоли. Если это виртуальная машина, и у вас есть хост, должен быть способ подключиться к хосту и получить доступ к консоли. Если это такой сервис, как AWS, то вам не повезло, и вам нужно восстановить его каким-либо другим способом, например, создать новый экземпляр и отсоединить корневой том от плохого экземпляра и установить его на новый, чтобы исправить это.

Вопрос решен и этот вопрос можно закрывать. Однако я не смог сделать это через 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.

Redhat использует Systemd для запуска / остановки заданий.

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

Вам необходимо настроить sshd (и его зависимости) для работы на этих уровнях запуска (= цели в терминологии systemd).

Вот вы можете узнать больше о тонкой настройке systemd. Некоторые Redhat документы также можно использовать.