ZSH removido, não é possível entrar novamente

14

Então eu tenho instalar zshe eu não gostei. então eu fizapt-get remove zsh

A partir desse ponto, não consigo logar novamente, clico no meu usuário ... e depois volto para a tela de login. Só consigo fazer login com o Guest session.

Eu acho que o problema é causado porque o shell defualt no meu usuário é zsh e ele não existe mais ..

Como posso reinstalá-lo a partir da sessão de convidado de alterar o shell padrão de meus usuários para usuário convidado?

Mesmo tentando fazer logon, ctrl+alt+f2/6digito meu usuário e senha. O login é bem-sucedido, mas eu o jogado de volta para o login.

Alguma ideia?

tubu13
fonte
Pensando bem, o problema da concha provavelmente não teve influência. Nenhum shell do usuário é gerado depois que o DM foi carregado antes do DE ser carregado (e isso provavelmente também não teria sido um problema). E eu não tenho certeza sobre o ~/.bashrc- ~/.profilecircuito ou: Eu testei tanto purgar o shell do usuário e criar o ~/.bashrc- ~/.profilecircuito em uma máquina virtual e eu sempre fui capaz de fazer login através LightDM, embora eu não tenho sido capaz de logon através do console com o loop ~/.bashrc- ~/.profile(mas ainda assim, o LightDM funcionou). De qualquer forma, você deve aceitar minha resposta.
kos

Respostas:

16

O usuário convidado não tem permissão para executar sudoou pkexec, que (a menos que você seja root, o que você não é) é necessário para alterar o shell de outro usuário.

Portanto, a única solução que me ocorre é inicializar em um shell raiz e alterar o shell do usuário como root:

chsh -s /bin/bash user

Onde userestá o nome de usuário do seu usuário.

kos
fonte
Alguém se pergunta como você corrige isso quando o shell do root também é zsh ... LiveCD?
Kevin
@ Kevin Esta resposta provavelmente está errada. O shell não tem relação com o usuário não estar logado no DE, pois nenhum shell do usuário é gerado depois que o DM foi carregado antes do DE ser carregado. Não sei se existem opções melhores, caso alguém consiga se bloquear dessa maneira, mas suponho que o uso de um Live DVD e a alteração /etc/passwdmanual funcionem.
kos
4
@ Kevin Possivelmente com uma opção de inicialização como init=/bin/bash.
user253751
2

Entre como root ou inicialize no shell raiz e edite a entrada do shell em / etc / passwd para "/ bin / sh". Então você pode fazer login novamente como você mesmo e mudar as coisas a partir daí.

Ted Cahall
fonte
1

Então, além do que @kos disse ..

Por alguma razão, adicionei source ~/.profileao meu arquivo .bashrc (não sei por que ... leia-o em algum lugar) E meu .profilearquivo carregou o .bashrcque causa carregamento circular !.

Remover a source..solução + @kos fez o truque!

tubu13
fonte
Os desktops Linux meio que quebraram o paradigma .profilestuff .bashrc-for-aliases-for -env-vars e one-per-login . Como às vezes você precisa de envios configurados para que as coisas funcionem, posso ver por que alguém pode pensar que é uma boa idéia para source ~/.profilepartir .bashrc. (Efetuando login em uma sessão de desktop pode não fonte de seu perfil para set env vars para todas as crianças da sessão.)
Peter Cordes
1

Para quem tem o problema de desinstalar o zsh. Tente seguir estas etapas.

  1. Faça login como root via modo de recuperação. Você pode ver como fazer isso nesta resposta. /ubuntu//a/92558/104228
  2. Depois de fazer login como root. Aberto /etc/passwd. Encontre sua entrada de usuário e mude de /usr/bin/zshpara /bin/sh. Salve o arquivo e reinicie como a etapa normal. Você deve fazer o login normalmente.
  3. Depois de reiniciar o seu ubuntu. Você encontrará sua casca tão ruim. Execute este comando chsh -s /bin/bash. Digite sua senha e digite. Você vai ficar bem agora.
  4. Digite sudo apt-get purge --auto-remove zshpara limpar outros pacotes de dependência do zsh.

Espero que este passo ajude outro que tenha o mesmo problema que eu.

PS. Meu inglês não é o idioma principal. Eu espero que você possa me entender.

EThaizone Jo
fonte