Ubuntu: Mudou acidentalmente o usuário root para o shell inexistente

7

Eu tentei mudar o shell do meu usuário, mas usei "sudo chsh", e mudei o shell de root para "bash" ao invés de "/ bin / bash". Agora, quando tento alterá-lo, recebo "chsh: PAM authentication failed" e parece que outras coisas não estão funcionando.

~$ sudo su
Cannot execute bash: No such file or directory

Isso também acontece com o modo de recuperação. O que eu faço para mudar isso para algo utilizável?

    
por endolith 21.11.2009 / 09:29

4 respostas

15

Se você conseguir fazer o login usando seu usuário comum, basta alterar diretamente o shell dos usuários root:

sudo gedit /etc/passwd

Encontre a linha para seu usuário root, geralmente o primeiro, e altere a última parte de

...:bash

para

...:/bin/bash

E você deve ser bom para ir.

(NB: Substitua o gedit pelo editor que você gosta).

    
por 21.11.2009 / 10:00
6

Use o disco de instalação do Ubuntu para inicializar a sessão ao vivo.

Monte a partição raiz ('/') no disco rígido (verifique se é gravável).

edite '[ponto de montagem de HD] / etc / passwd' (por exemplo, / media / sda1 / etc / passwd),

root deve ser a primeira linha, apenas corrija o shell de login que será a última entrada na linha.

Desmontar o disco rígido. Remova o CD. Reinicie

    
por 21.11.2009 / 09:54
2

Eu brinquei com isso antigamente:

cd /bin ; sudo su

O que está acontecendo é sem / na frente o shell está sendo interpretado como um caminho relativo. Oh gee se estamos em / bin resolve corretamente.

Se você ficar realmente preso; o CD de resgate é o caminho mais longo. A opção de inicialização init = / bin / sh fornece um shell root imediatamente. O cursor apenas pisca para você sem prompt, mas você tem um shell de root. Fazer

set -i
# mount / -o remmount,rw
# vi /etc/passwd
<fix it>
# mount / -o remount,ro
# reboot -f
    
por 24.08.2016 / 17:44
2

Note que, como uma solução alternativa de curto prazo, você pode usar a opção "-s" no comando su para especificar um shell. Por exemplo:

su -s /bin/bash

iniciaria sua su sessão com o shell / bin / bash. O mesmo vale para o sudo su -s / bin / bash (ou qualquer shell que você queira). A resposta de Bjarke Freund-Hansen é a correção permanente.

    
por 01.03.2017 / 06:47