Я использовал команду 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