Como consertar “login: no shell: Não existe tal arquivo ou diretório” quando não consigo nem logar?

3

Eu instalei o fishfish (um shell de linha de comando interativo e amigável ao usuário) em um servidor Linux, mais tarde alguém o desinstalou mas eu não não sei disso. Depois de executar chsh -s /usr/local/bin/fish sem cuidado, não consigo fazer login no servidor agora. Mensagem de erro "login: no shell: Nenhum arquivo ou diretório" apareceu que aparentemente diz que os peixes não existem mais.

O servidor fornece apenas uma interface CLI, então como posso alterar o shell de login quando não consigo nem mesmo fazer o login?

    
por xanpeng 08.06.2012 / 09:33

4 respostas

7

Se você tiver acesso à conta root, poderá alterar o shell para um usuário usando chsh -u user -s $SHELL .

Se você tiver acesso ao processo de inicialização, poderá anexar init=$SHELL para ser descartado para um shell de usuário único, onde poderá corrigir isso, novamente com chsh -u user -s $SHELL (alguns sistemas usando uma inicialização de dois estágios com um A imagem initrd pode exigir que você use real_init ). Você provavelmente precisará remontar o sistema de arquivos contendo /etc/passwd como leitura-gravação (usando mount -o remount,rw / ou similar).

Caso contrário, se você puder su no usuário de outro usuário, tente su user -c $SHELL , ou se puder ssh no usuário, você pode tentar algo como ssh user@localhost $SHELL .

Você também pode inicializar em um CD / USB ativo, montar / e corrigir /etc/passwd manualmente.

    
por 08.06.2012 / 10:57
2

eu tenho o mesmo problema, esta solução funciona para mim:

  1. Inicialize com um CD ao vivo (eu uso o debían 7.6) no modo ao vivo
  2. No terminal ativo, obtenha acesso root executando o comando: passwd root
  3. Monte o disco da partição da sua distribuição de falhas
  4. Vá para este disco e execute este comando: cat etc/shells
  5. Com nano etc/passwd remova as referências de peixe e coloque um nome de console válido do ponto 4
  6. Reinicie e aproveite.
por 28.03.2015 / 18:44
1

Ao tentar fazer o login, recebi esta mensagem: Não é possível executar / sbin / nologin: Nenhum arquivo ou diretório desse tipo

Isso é o que eu fiz e funcionou para mim.

  1. Eu entrei no sistema com outra conta com privilégios de superusuário
  2. Digite o seguinte comando:

sudo chsh -u user -s $SHELL

em que user é o nome da conta com o problema

  1. Logout do sistema
  2. Faça login com o nome da conta que teve um problema
por 10.08.2016 / 12:22
0

Eu também estava enfrentando o mesmo problema no Elementary OS Loki. Para resolver o problema, realizei o seguinte

  1. primeiramente eu removo tudo relacionado ao zsh por sudo apt-get remove zsh & & apt-get autoremove
  2. depois eu editei o arquivo / etc / passwd e descobri que o shell do usuário root não está definido, então editei o shell / bin / bash e isso tudo me ajudou a resolver o problema.
por 24.05.2018 / 17:56

Tags