Faça login com shell diferente quando o shell original estiver “quebrado”

4

Eu consegui fazer algo catastroficamente estúpido e abaixo do nível de novato.

Limpe a instalação no meu VPS do FreeBSD e atualize para a versão 9.1 (de 9). Por alguma razão incomum, ao invés de instalar a tela primeiro, eu instalei o bash através do pkg.

Então eu mudei o shell para o meu usuário AND root. Agora, quando tentei fazer login novamente, nas duas contas, e elas são as únicas duas contas, recebi um erro estranho de que meu google-fu não conseguiu obter uma resposta. Eu recebo "/ usr / local / bin / bash: símbolo indefinido" _ThreadRuneLocale "%" depois de digitar a senha e o. Eu sou expulso do servidor. Eu tentei fazer o mesmo através do console.

Agora que consegui me proteger da minha conta, além do gênio root que sou, estou imaginando se há uma maneira de fazer login com um shell diferente, mas ignorando esse problema.

Quando eu tento ssh @ -i / bin / sh .. ainda não, isso me dá exatamente o mesmo erro.

TIA

    
por SteveMustafa 30.04.2013 / 10:53

2 respostas

3

Esta é uma máquina virtual completa, ou um VPS do FreeBSD? Se o primeiro, o seu provedor oferece acesso OOB ao console da VM? Em caso afirmativo, reinicialize o servidor em um único usuário, que usa /bin/sh por padrão, e a partir daí, você pode definir seu shell de raiz como /bin/csh usando chsh ou vipw como preferir.

Se o seu VPS é uma cadeia FreeBSD, ou você não tem acesso ao console OOB, você precisa entrar em contato com a equipe de suporte do seu provedor e pedir que ele defina o shell do seu usuário root para /bin/csh . Eles devem ser capazes de fazer isso para você com o mínimo de barulho.

Se você realmente quiser usar bash como seu shell de root, use o toor user ou root - ele é fornecido exatamente para esses fins, para que você possa configurar um ambiente confortável sem o risco de se bloquear Fora. No entanto, prefiro deixar root exatamente como é, como um lembrete de que estou operando com privilégios elevados.

    
por 08.05.2013 / 12:45
1

ssh sempre usará o shell configurado após o login e, em seguida, usará isso para iniciar o programa que você solicitou. O que você precisaria é de um subsistema diferente para iniciar. Por padrão, há ssh e sftp, e você pode tentar adicionar seus próprios em /etc/ssh/sshd_config :

Subsystem  binsh /bin/sh

(baixando /etc/ssh/sshd_config usando sftp , modificando, fazendo o upload novamente, e reiniciando a máquina de alguma forma) e então selecione isso usando

ssh -s -l <account> <machine> binsh

Nota: não testado, ou seja, se quebrar você consegue manter as peças.

    
por 17.06.2013 / 12:16