zsh definido como shell padrão para root

zsh definido como shell padrão para root

Posso definir o zsh como shell padrão enquanto estou logado como root? Eu fiz chsh -s /bin/zshe 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 rootsenha 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'ssenha. 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

informação relacionada