Por que não consigo alterar o shell com o comando chsh?

8

Eu aprendi um novo comando, pelo menos eu pensei, porque este comando: chsh , não se comporta como descrito.

Foi descrito para funcionar assim:

  1. cat /etc/shells para saber quais shells estão instaladas, então você pode escolher entre elas.
  2. faça echo $SHELL saber qual shell você está usando.
  3. escolha um dos shells e digite chsh -s /path/to/shell
  4. insira a senha e verifique com echo $SHELL se você está em um novo shell.

Eu fiz isso e não recebi nenhuma mensagem de erro ao digitar a senha, mas ainda estava no mesmo shell.

% echo $SHELL
/bin/bash
% cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash
% chsh -s /bin/sh
Password: 
% echo $SHELL
/bin/bash
    
por sharkant 03.05.2017 / 20:56

1 resposta

13

Faça logout e faça login novamente.

O comando chsh atualizará o arquivo /etc/passwd , mas não altera o shell atual nem o valor da variável $SHELL no shell atual (não tem como fazendo isso). Este é o motivo pelo qual você precisa fazer login novamente; você precisa iniciar uma nova sessão de login para que uma alteração entre em vigor.

    
por 03.05.2017 / 20:58