Я сделал небольшую ошибку:
vipw
(отредактировать файл passwd)/bin/csh
к /bin/bash
Как вы, наверное, догадались, оболочка bash не помещается в / bin :( Довольно глупая ошибка!
Теперь я не могу войти в систему как root. Я могу войти в систему как пользователь колеса, но не могу vipw
.
Пробовал безуспешно:
/rescue/vi /etc/passwd
su -m
Итак, как мне снова изменить корневую оболочку на /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
Фух.