Ubuntu: случайно изменил пользователя root на несуществующую оболочку
Я попытался изменить оболочку моего пользователя, но использовал "sudo chsh" и изменил корневую оболочку на "bash" вместо "/bin/bash". Теперь, когда я пытаюсь изменить его, я получаю "chsh: PAM аутентификация не удалась", и кажется, что другие вещи тоже не работают.
~$ sudo su
Cannot execute bash: No such file or directory
Это происходит и в режиме восстановления. Что я делаю, чтобы изменить это на что-то полезное?
4 ответа
Если вы можете войти под своим обычным пользователем, просто измените оболочку root-пользователей напрямую:
sudo gedit /etc/passwd
Найдите строку для вашего пользователя root, обычно первую, и измените последнюю часть с
...:bash
в
...:/bin/bash
И тебе должно быть хорошо идти.
(NB: Замените gedit любым редактором, который вам нравится.)
Используйте установочный диск Ubuntu для загрузки живого сеанса.
Смонтируйте корневой раздел ('/') на жесткий диск (убедитесь, что он доступен для записи).
отредактируйте '[точку монтирования HD]/etc/passwd' (например, / media / sda1 / etc / passwd),
root должен быть первой строкой, просто исправьте оболочку входа в систему, которая будет последней записью в строке.
Размонтировать жесткий диск. Удалить CD. перезагружать
Я играл с этим однажды давным-давно:
cd /bin ; sudo su
То, что происходит, без / впереди оболочка интерпретируется как относительный путь. О боже, если мы находимся в /bin, это решает правильно.
Если вы действительно застряли; спасательный CD - долгий путь. Опция загрузки init=/bin/sh сразу дает вам корневую оболочку. Курсор просто мигает на вас без подсказки, но у вас есть корневая оболочка. Делать
set -i
# mount / -o remmount,rw
# vi /etc/passwd
<fix it>
# mount / -o remount,ro
# reboot -f
Обратите внимание, что в качестве краткосрочного обходного пути вы можете использовать ключ "-s" в команде su, чтобы указать оболочку. Например:
su -s /bin/bash
начал бы сеанс su с оболочкой / bin / bash. То же самое касается sudo su -s /bin/bash (или любой другой оболочки, которую вы хотите) @Bjarke Freund-Hansen - это постоянное исправление.