Убунту: случайно изменить root на несуществующий Шелл

Я попытался изменить оболочку своего пользователя, но использовал "sudo chsh" и изменил корневую оболочку на "bash" вместо "/bin/bash". Теперь, когда я пытаюсь изменить его, я получаю "chsh: pam authentication failed", и кажется, что другие вещи тоже не работают.

~$ sudo su
Cannot execute bash: No such file or directory

это происходит и в режиме восстановления. Что мне сделать, чтобы изменить его на что-то полезное?

21
задан endolith
05.03.2023 10:45 Количество просмотров материала 3292
Распечатать страницу

4 ответа

Если вы можете войти в систему с помощью обычного пользователя, просто измените оболочку root users напрямую:

sudo gedit /etc/passwd

найти строку для вас корневой пользователь, как правило, первый, и изменить последнюю часть от

...:bash

to

...:/bin/bash

и вы должны быть хорошо идти.

(NB: замените gedit любым удобным вам редактором.)

15
отвечен Bjarke Freund-Hansen 2023-03-06 18:33

используйте установочный диск Ubuntu для загрузки сеанса live.

смонтируйте корневой ( ' / ' ) раздел на жестком диске (убедитесь, что он доступен для записи).

редактирование '[балльной HD крепление] файла/etc/passwd с' (например, папку /media/sda1, поскольку файл/etc/passwd с),

root должен быть первой строкой, просто исправьте оболочку входа, которая будет последней записью в строке.

отключить жесткий диск. Извлеките компакт-диск. Перезагрузка

6
отвечен JRT 2023-03-06 20:50

Я играл с этим когда-то давным-давно:

cd /bin ; sudo su

то, что происходит без / перед оболочкой, интерпретируется как относительный путь. О, боже, если мы находимся в /bin, он правильно разрешает.

Если вы действительно застряли; спасательный компакт-диск длинный путь вокруг. Опция загрузки init= / bin / sh дает вам корневую оболочку немедленно. Курсор просто мигает на вас без подсказки, но у вас есть корневая оболочка. Делай

set -i
# mount / -o remmount,rw
# vi /etc/passwd
<fix it>
# mount / -o remount,ro
# reboot -f
2
отвечен Joshua 2023-03-06 23:07

обратите внимание, что в качестве кратковременного обхода можно использовать переключатель "-s" в команде su для указания оболочки. Например:

su -s /bin/bash

будет начать сеанс su с/bin / bash оболочки. То же самое касается sudo su-s /bin/bash (или любой другой оболочки, которую вы хотели бы) @Bjarke Freund-hansen's answer is the permanent fix.

2
отвечен apocalysque 2023-03-07 01:24

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх