método # 1: com chsh
Normalmente você pode usar o comando chsh
para alterar seu shell sem ter que ter acesso ao /etc/passwd
. Este é o arquivo que normalmente lista seu shell padrão, por exemplo:
saml:x:500:501:Sam M. (local):/home/saml:/bin/zsh
Um usuário normal só pode alterar o shell de login para sua própria conta, o superusuário ou seja, o usuário root pode alterar o shell de login de qualquer conta. Você pode ver quais shells estão disponíveis no seu sistema com este comando:
$ chsh --list-shells
/bin/sh
/bin/bash
/sbin/nologin
/bin/dash
/bin/tcsh
/bin/csh
/bin/zsh
Para alterar seu shell, você pode usar este comando:
$ chsh -s /bin/zsh saml
Changing shell for saml.
Password:
Shell changed.
O efeito é óbvio se você olhar no arquivo /etc/passwd
:
$ grep saml /etc/passwd
saml:x:500:501:Sam M. (local):/home/saml:/bin/zsh
Você não verá a mudança imediatamente. Você terá que sair / login para ver:
[saml@grinchy]~% echo $SHELL
/bin/zsh
método # 2: /usr/bin/passwd -e
Se você não tiver acesso ao comando chsh
, que aparentemente não está no Solaris, e não tiver acesso root para alterá-lo em /etc/passwd
, talvez ainda possa fazer o mesmo com este comando:
$ /usr/bin/passwd -e
método # 3: defina manualmente o método
Se nenhum dos métodos acima for uma opção, você basicamente terá esta última opção, que é adicionar um dos seguintes aos arquivos de login do seu shell existente:
-
shell padrão: / bin / csh ou / bin / tcsh
Adicione as seguintes linhas a $HOME/.login
:
setenv SHELL=/bin/bash
exec $SHELL
-
shell padrão: / bin / bash
Adicione o seguinte a $HOME/.bash_profile
:
export SHELL=/bin/zsh
exec $SHELL
Alguns aspectos adicionais a serem considerados com os itens acima, você pode torná-los mais à prova de balas realizando uma verificação para ver se o $ SHELL atual já é /bin/bash
, por exemplo, antes de configurá-lo. Se estiver, não faça nada, caso contrário, vá em frente e execute o exec $SHELL
.
Referências