Shell alterado e não é possível fazer login ssh na conta root

1

Eu usei o comando usermod -s /bin/fish root para alterar o shell do usuário root e agora não consigo fazer login na minha conta root. Por que isso está acontecendo?

Eu estou tentando SSH em um servidor rodando Ubuntu através de Putty no Windows. Obtendo uma permissão negada erro.

    
por moesef 28.02.2013 / 21:38

2 respostas

3

Primeiro, tudo, se você ainda estiver logado através de outro shell: Não desconecte .
(É por isso que você sempre testa antes de sair).

Em segundo lugar, você ainda pode fazer logon via outro usuário?
Esse outro usuário tem (uid 0), então use isso para verificar se / bin / fish não está apenas instalado, mas também presente em / etc / shells (uma lista de shells permitidos). Se não estiver, adicione-o novamente.

Se esse usuário tiver permissão para usar su ou sudo, tente algo como sudo /usr/local/bin/bash .

se tudo isso falhou, então você tem que fazer o login de alguma outra forma. O init=/bin/sh do Tim é a solução tradicional para pessoas com acesso físico aos seus servidores. (Um HP ILO ou um DRAC da Dell também servirá como substituto para o acesso físico).

No carregador de inicialização LILO, isso seria feito com init=/bin/sh e seguido por mount -o remount,rw / após o login. (else / seria somente leitura, o que dificultaria a correção). A partir do grub, selecione a opção que permite editar os parâmetros do kernel. Adicione um 1 (para o modo de execução 1, também conhecido como usuário único) ou 'single' para o fim dos parâmetros do kernel.

Se nada disso se aplicar, você terá que remover fisicamente o disco e atacá-lo em um sistema operacional no qual tenha acesso total para corrigi-lo.

    
por 28.02.2013 / 21:53
2

se o shell não estiver instalado, você será bloqueado imediatamente após o login, porque o shell não pôde ser carregado.

Se você não usa o sudo e executa o linux, você pode passar um shell válido para o kernel no grub / lilo. Como:

init=/bin/sh 
    
por 28.02.2013 / 21:43

Tags