Preso em um loop no prompt de login depois de alterar o shell para zsh

2

Eu mudei meu shell padrão de bash para zsh e após a reinicialização, estou preso em um loop, onde ele me traz de volta ao prompt de login depois que minha senha é digitada corretamente - não é possível efetuar login na raiz também.

Como estou no prompt de login, não consigo editar nada, por isso preciso de um live usb, mas não tenho certeza do que mais fazer / como resolver o problema

EDIT: Como solicitado, eu entro em tty1 que está lá por padrão, eu digite meu nome de usuário e senha, como de costume, mas quando eu faço isso exibe algum texto muito rapidamente para ler, em seguida, volta para o mesmo prompt para meu nome de usuário novamente. Normalmente ele me levaria para um terminal depois disso onde eu iria iniciar o xfce com o comando startxfce4

Para alterar o shell que fiz chsh / bin / zsh

Eu também posso ter executado como sudo, no entanto eu fiz isso ontem e não consigo mais lembrar se eu fiz isso ou não.

    
por Artifex 26.09.2015 / 21:33

2 respostas

0

Consegui corrigir o problema fazendo o "Chrooting" no meu computador e, em seguida, alterando o shell de volta para o bash. Acredito que o problema ocorreu em primeiro lugar com um problema com uma biblioteca compartilhada. Resolvi esse problema agora e tentarei fazer minha concha mais uma vez, obrigado a todos pela ajuda.

    
por 03.10.2015 / 16:48
4

Em um sistema normalmente configurado, se você alterou seu shell com chsh , o shell escolhido é válido, portanto o shell está iniciando, mas há um problema em um de seus arquivos de configuração que faz com que ele saia imediatamente .

Tente pressionar Ctrl + C muito rapidamente depois de registrá-lo. Dependendo de quão carregada é a máquina, a janela de tempo durante a qual isso não matará o shell, mas instruirá a interrupção dos arquivos de configuração pode ou não durar o suficiente para ter uma chance realista de sucesso. Tente algumas vezes, de preferência durante uma atividade pesada no disco, para que os arquivos envolvidos não fiquem no cache de disco.

Se o problema estiver em .zshrc , você ainda poderá efetuar login de maneira não interativa. Isso é impossível no console, mas pode ser feito pela rede:

ssh machinename 'mv .zshrc bad.zshrc'

Se você tiver acesso FTP (não SFTP), poderá se livrar de qualquer arquivo de configuração dessa maneira, porque o FTP não lê nenhum arquivo de configuração. Com SSH ou SFTP, um shell é sempre chamado, portanto, você não poderá efetuar login se o problema for com .zprofile ou .zshenv .

Se você não conseguir acessar sua conta, precisará corrigir isso por meio da conta raiz. Se você tiver uma senha root, faça o login como root no console. Se você só tem acesso à conta root via sudo, você está bloqueado, portanto, supondo que ninguém mais possa fazer isso por você, você precisará ter acesso físico à máquina e precisará reiniciá-la. No prompt de bootloader (você pode precisar pressionar e segurar Shift para que apareça), adicione init=/bin/sh no final da linha de comando do kernel (a linha que começa com linux ). Consulte o Arch Wiki para obter mais detalhes.

Depois de obter acesso a partir da conta raiz, você pode alterar o shell de volta para um que funcionou ou adivinhar o arquivo que causou o problema. Zsh lê cinco arquivos de configuração em /etc e 5 no seu diretório pessoal .

Depois de recuperar o acesso à sua conta, se você não souber qual arquivo causou o problema, adicione set -x a ~/.zshenv . Isso fará com que o zsh imprima todos os comandos antes de executá-los. Execute zsh -l para executar um shell de login ou faça login em outro terminal e veja o que quebra.

Antes de mudar seu shell de volta para o zsh, teste que zsh -l funciona. Depois de executar chsh , verifique se você pode fazer login em outro terminal antes de sair.

    
por 27.09.2015 / 02:10