
Posso definir o zsh como shell padrão enquanto estou logado como root? Eu fiz chsh -s /bin/zsh
e usei minha senha root para autenticação, mas falhei.
Responder1
Um truque é configurar shells raiz interativos para usar zsh e deixar shells não interativos para continuar usando /bin/sh.
Isso ainda pode levar a problemas de "expectativa", conforme descrito em outras respostas, mas pelo menos você não explodirá nenhum processo não interativo.
Adicione o seguinte ao final de /root/.bashrc
if [ ! -z "$PS1" ]; then
exec /bin/zsh $*
fi
Responder2
Em geral, é uma má ideia alterar o shell raiz de /bin/sh. É melhor adicionar outra conta, por exemplo zroot, que ainda tenha um UID 0, mas tenha zsh como shell. No entanto, para tentar responder à pergunta, se você estiver logado como root, não precisará usar o sudo
. Apenas use
chsh -s /bin/zsh root
e forneça a root
senha em resposta à solicitação do chsh. Vale a pena especificar explicitamente a 'raiz'.
Se você estiver logado como 'fred', use
sudo -i
e responda a solicitação de senha com fred's
senha. Isso deve fornecer um shell de root. Proceda como se você tivesse feito login originalmente como root.
Certifique-se de que /bin/zsh esteja listado em /etc/shells.
Responder3
Você provavelmente esqueceu de executá-lo como root. Execute o seguinte comando:
$ sudo chsh -s /bin/zsh
Responder4
Editar o arquivo passwd com o editor normal não é recomendado para fazer este uso
vipw
e mude o shell para zsh, honestamente, não entendo por que você deseja alterar o shell root, a conta root deve ser usada apenas para administração, para trabalho normal, use usuário sem privilégios. Depois disso, tente fazer login em outro tty sem (é importante) desconectar do tty atual, se funcionar, você poderá ver seu novo shell. Se você quiser usar zsh imediatamente, basta digitar zsh. Conclusão
I want to use my new shell now = type zsh
I want to use my new shell + change = chsh -s or vipw
ps= se o seu zsh não estiver instalado nesse caminho (/bin /sbin..) e você tiver que fazer um login de usuário único com root, não funcionará porque não consegue encontrar seu shell, isso pode acontecer também no sistema com /usr separado do root/montado em outro lvm ou partição