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

Изменена оболочка и невозможно войти по ssh в учетную запись root

Я использовал команду usermod -s /bin/fish root чтобы изменить оболочку пользователя root, и теперь я не могу войти в свою учетную запись root. Почему это происходит?

Я пытаюсь подключиться по SSH к серверу с Ubuntu через Putty в Windows. Ошибка получения разрешения запрещена.

Прежде всего, если вы все еще вошли в систему через другую оболочку: Не выходить.
(Вот почему вы всегда проверяете перед выходом из системы).

Во-вторых, можно ли войти в систему через другого пользователя?
Есть ли у этого другого пользователя (uid 0), затем используйте его, чтобы проверить, не только ли / bin / fish установлен, но и присутствует ли в / etc / shells (список разрешенных оболочек). Если это не так, попробуйте еще раз.

Если этому пользователю разрешено использовать su или sudo, попробуйте что-нибудь вроде sudo /usr/local/bin/bash.

если все это не удалось, вам нужно войти в систему другим способом. Тим init=/bin/sh это традиционное решение для людей, имеющих физический доступ к своим серверам. (HP ILO или DRAC от Dell также могут заменить физический доступ).

Из загрузчика LILO это будет сделано с помощью init=/bin/sh а затем mount -o remount,rw / после входа в систему (иначе / будет доступно только для чтения, что затруднит исправление). В grub выберите параметр, позволяющий редактировать параметры ядра. Добавьте либо 1 (для режима выполнения 1, он же однопользовательский) или «single» до конца параметров ядра.

Если ничего из этого не подходит, вам придется физически удалить диск и атаковать его в ОС, к которой у вас есть полный доступ, чтобы исправить это.

если оболочка не установлена, вы будете заблокированы сразу после входа в систему, потому что оболочка не может быть загружена.

Если вы не используете sudo и запускаете linux, вы можете передать ядру допустимую оболочку в grub / lilo. Подобно:

init=/bin/sh