Como corrigir “login: sem shell: nenhum arquivo ou diretório” quando não consigo nem fazer login?

Como corrigir “login: sem shell: nenhum arquivo ou diretório” quando não consigo nem fazer login?

Eu instaleipeixe-peixe(um shell de linha de comando interativo e fácil de usar) em um servidor Linux, mais tarde alguém o desinstalou, mas eu não sei. Depois de executar chsh -s /usr/local/bin/fishsem cuidado, não consigo fazer login no servidor agora. A mensagem de erro "login: no shell: Esse arquivo ou diretório não existe" apareceu, o que aparentemente diz que os mariscos 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 fazer login?

Responder1

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

Se você tiver acesso ao processo de inicialização, poderá anexar init=$SHELLpara ser descartado em um shell de usuário único, onde poderá corrigir isso, novamente com chsh -u user -s $SHELL(alguns sistemas que usam uma inicialização de dois estágios com uma imagem initrd podem exigir que você use real_initem vez disso) . Você provavelmente precisará remontar o sistema de arquivos que contém /etc/passwdleitura e gravação (usando mount -o remount,rw /ou similar).

Caso contrário, se você puder suentrar no usuário de outro usuário, tente su user -c $SHELL, ou se puder fazer 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 consertar /etc/passwdmanualmente.

Responder2

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

  1. Inicialize com um live cd (eu uso o debian 7.6) no modo live
  2. No terminal ativo, obtenha acesso root executando o comando:passwd root
  3. Monte o disco da partição da sua distro crash
  4. Vá para este disco e execute este comando:cat etc/shells
  5. Com nano etc/passwdremova as referências de peixe e coloque um nome de console válido do ponto 4
  6. Reinicie e aproveite.

Responder3

Ao tentar fazer login recebi esta mensagem: Não é possível executar /sbin/nologin: esse arquivo ou diretório não existe

Isso é o que eu fiz e funcionou para mim.

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

sudo chsh -u usuário -s $SHELL

onde usuário é o nome da conta com o problema

  1. Sair do sistema
  2. Faça login com o nome da conta que teve problema

Responder4

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

  1. primeiro eu removo tudo relacionado ao zsh porsudo apt-get remove zsh && apt-get autoremove
  2. depois disso eu editei o/etc/senhaarquivo e descobri que o shell do usuário root não está definido, então editei o shell /bin/bash e tudo isso me ajudou a resolver o problema.

informação relacionada