Мне нужно войти в режим восстановления моего окна 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 документы также можно использовать.