Uma possibilidade é inicializar o sistema em um único usuário ou usar uma chave USB de inicialização de recuperação (relacionada à sua distribuição) para corrigir o erro de digitação em /etc/passwd
Em muitos sistemas Linux, você poderia dizer ao carregador de inicialização GRUB para executar um argumento kernel witn init=/bin/bash
. Depois de fazer isso, você poderá reeditar cuidadosamente seu /etc/passwd
BTW, a coisa certa a fazer para alterar um shell é chsh
, mas você realmente não quer chsh
to /usr/bin/screen
para root
(você pode criar outra conta do uid 0 e shell /usr/bin/screen
; não tenho certeza se é uma coisa sensata a ser feita ...)
Por fim, leia com atenção su (1) :
-s
,--shell=
shellRun the specified shell instead of the default.
Portanto, você deve executar /bin/su -s /bin/bash
; observe que /bin/bash chsh root
não é o caminho de um executável (que pode ser execve (2) -d como um shell), mas isso não funcionará para o root se o shell não estiver listado em /etc/shells
você também pode tentar /usr/bin/sudo SHELL=/bin/bash -s