Sua entrada em /etc/passwd
é
root:x:0:0:root:/root:zsh
Esta é uma entrada inválida: o shell deve ser um caminho completo para um executável, o programa de login não realiza a pesquisa $ PATH.
Você não poderá fazer login na conta raiz por meios normais. Você pode usar o sudo para invocar um comando, por exemplo sudo vipw
, se sua conta tiver permissões sudo. Este é o único método comum para ignorar a configuração do shell de login na conta de destino.
Se você não é um sudoer, provavelmente se bloqueou para fora da conta root. Você precisará de acesso ao console para reparar o sistema. Inicialize no modo de usuário único (consulte Como faço para executar um comando como o administrador do sistema (root) ) e editar /etc/passwd
para conter
root:x:0:0:root:/root:/bin/zsh
(com o caminho correto para o zsh no seu sistema).
Alguns administradores configuram um conta toor com UID 0 mas um shell diferente (tipicamente um binário estaticamente ligado como sash , para permitir que o root faça o login mesmo em caso de um erro de configuração como este (a configuração incorreta mais comum é uma biblioteca compartilhada quebrada no shell normal).
Para evitar esses problemas no futuro, use o comando chsh
para alterar o shell de um usuário, em vez de editar /etc/passwd
diretamente. E se você precisar editar /etc/passwd
ou algum outro arquivo envolvido no acesso root, mantenha um shell root aberto em um terminal e não o feche até que você tenha verificado que ainda pode efetuar login como root.