ZSH удален, не может повторно войти

14

Итак, я установил zshи мне это не понравилось. так я и сделалapt-get remove zsh

С этого момента я не могу повторно войти в систему, я нажимаю на моего пользователя ... и затем он просто возвращается к экрану входа в систему. Я могу войти только с Guest session.

Я думаю, что проблема вызвана тем, что оболочка defualt на моем пользователе zsh, и она больше не существует ..

Как я могу переустановить его из гостевого сеанса или изменить оболочку по умолчанию для моего гостя?

Даже пытаясь войти в систему, ctrl+alt+f2/6я ввожу мой пользователь и пароль. Логин успешен, но я возвращен к логину.

Есть идеи?

tubu13
источник
Во-вторых, проблема с оболочкой, вероятно, не имела никакого отношения Пользовательская оболочка не создается после загрузки DM до загрузки DE (и это, вероятно, также не было бы проблемой). И я не уверен , о ~/.bashrc- ~/.profileпетли либо: Я проверил и продувка оболочки пользователя и создание ~/.bashrc- ~/.profileцикл в виртуальной машине , и я всегда был в состоянии войти через LightDM, хотя я не был в состоянии входа в систему через консоль с циклом ~/.bashrc- ~/.profile(но все же LightDM вместо этого работал). В любом случае, вы должны отказаться от моего ответа.
Кос

Ответы:

16

Гостевой пользователь не получает разрешения на запуск sudoили pkexec, что (если вы не root, а вы не) необходимы для изменения оболочки другого пользователя.

Таким образом, единственное решение, которое мне приходит в голову, это загрузка в корневую оболочку и изменение оболочки пользователя как root:

chsh -s /bin/bash user

где user имя пользователя вашего пользователя.

кос
источник
Интересно, как это исправить, когда оболочка root также zsh ... LiveCD?
Кевин
@Kevin Этот ответ, вероятно, неправильный. Оболочка не имеет отношения к тому, что пользователь не вошел в DE, так как пользовательская оболочка не создается после того, как DM был загружен до того, как загружен DE. Я не знаю, есть ли лучшие варианты на случай, если удастся заблокировать себя таким образом, но я полагаю, что использование Live DVD и изменение /etc/passwdвручную должно работать.
Кос
4
@Kevin Возможно, с опцией загрузки, как init=/bin/bash.
user253751
2

Войдите в систему как root или загрузитесь в корневую оболочку и отредактируйте запись оболочки в / etc / passwd в "/ bin / sh". Затем вы можете снова войти в систему как вы сами и изменить вещи оттуда.

Тед Кэхолл
источник
1

Так в дополнение к тому, что сказал @kos ..

По какой-то причине я добавил source ~/.profileв свой файл .bashrc (не знаю почему .. прочитал его где-то) И мой .profileфайл загрузил.bashrc который вызывает циклическую загрузку !.

Удаление source..решения + @kos сделало свое дело!

tubu13
источник
.profileРабочие столы Linux имеют вид неработающей парадигмы -for-env-vars и one-per-login stuff / .bashrc-for-aliases. Так как иногда нужно окр VARS набор для материала к работе, я могу понять , почему можно было бы подумать , что это хорошая идея source ~/.profileс .bashrc. (При входе в сеанс на рабочем столе ваш профиль может не указывать env vars для всех дочерних элементов сеанса.)
Peter Cordes
1

Для тех, у кого есть проблемы с удалением zsh. Попробуйте выполнить следующие шаги.

  1. Войдите в систему как root через режим восстановления. Вы можете посмотреть, как это сделать на этот ответ. /ubuntu//a/92558/104228
  2. После того, как вы войдете в систему как root. Open /etc/passwd. Найдите свою запись пользователя и измените с /usr/bin/zshна /bin/sh. Сохраните файл и перезагрузите компьютер как обычный шаг. Вы должны войти в систему нормально.
  3. После перезагрузки Ubuntu. Вы обнаружите, что ваша оболочка выглядит так плохо. Запустите эту команду chsh -s /bin/bash. Введите свой пароль и введите. Ваша оболочка будет хорошо выглядеть прямо сейчас.
  4. Тип sudo apt-get purge --auto-remove zshдля очистки других пакетов зависимостей от Zsh.

Я надеюсь, что этот шаг поможет другому, кто имеет ту же проблему, что и я.

PS. Мой английский не является основным языком. Я надеюсь, что вы меня понимаете.

EThaizone Джо
источник