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

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

Я сделал небольшую ошибку:

Как вы, наверное, догадались, оболочка bash не помещается в / bin :( Довольно глупая ошибка!

Теперь я не могу войти в систему как root. Я могу войти в систему как пользователь колеса, но не могу vipw.

Пробовал безуспешно:

Итак, как мне снова изменить корневую оболочку на /bin/csh ?

Я мог бы просто переустановить - но я бы предпочел узнать что-нибудь новое!

Загрузитесь в однопользовательском режиме, а затем:

mount -w /
vipw

Изменить путь на /usr/local/bin/bash

exit

Подсказка ... После первого входа в систему как root я меняю пароль toor. Таким образом, даже при повреждении данных / потере диска или раздела у меня есть пользователь с привилегиями и двумя разными оболочками.

Используйте какой-нибудь live CD / DVD. (Gentoo - хороший выбор.) Просто смонтируйте диск и отредактируйте файл / etc / passwd.

Ты можешь su (без -)?

Если нет, может быть sudo -u root /usr/bin/bash может работать?

В противном случае загрузитесь с компакт-диска, смонтируйте корневую файловую систему, измените etc/passwd файл в корневой файловой системе, синхронизация, размонтирование, перезагрузка.

Попытайтесь изменить загрузочную строку grub во время загрузки так, чтобы он не смог найти ядро. grub сбросит вас в busybox. Имеет встроенный редактор vi. Смонтировать, отредактировать и перезагрузить.

Правильная команда для однопользовательского режима:


mount -u -rw /
mount -a -t ufs

тогда просто выполните: chsh -s / usr / local / bin / bash root

Я только что сделал то же самое на Synology Diskstation - я предположил, что / bin / bash был доступен при поспешной смене корневой оболочки. Дох.

Я использовал параметр -s su при входе в систему как администратор, чтобы заставить оболочку:

-s, --shell=SHELL            run SHELL if /etc/shells allows it

То есть:

su -s /bin/ash 

Фух.