Como altero o shell padrão de um usuário no OSX?


33

Qual é a maneira OSX correta de alterar o shell padrão de um usuário? Quando procurei no Google, encontrei várias referências a um aplicativo chamado NetInfo Manager, mas não o encontrei no meu sistema. Também havia referências a uma versão de linha de comando chamada niutil, que eu também não encontrei.


Respostas:


52

para <= 10.4 - netinfo manager, / users / whoever / shell

para> = 10,5

  1. Vá para Preferências do Sistema -> Contas
  2. Clique no ícone de cadeado para desbloquear o painel de preferências
  3. Clique com o botão direito do mouse (ou clique com a tecla Control pressionada) no usuário e selecione "opções avançadas"
  4. Editar campo do shell de login

5
Uau, depois de 8 anos de uso do OS XI não sabia sobre o controle de cliques nas preferências dos usuários: acho que isso foi adicionado na versão 10.5, como você apontou. 1
jkp

1
Control-Click é impressionante!
Eonil

1
O Lifesaver depois de mover o shell da minha conta para fora do PATH ... não foi possível iniciar o Terminal para corrigir via linha de comando!
Davemyron 31/10/12

2
Não funciona mais no el Capitan?
MarcusJ

É verdade que este é o problema com esse tipo de coisa, 7 anos depois e as coisas mudaram - por que não fazer algumas pesquisas, adicionar e responder e isso será votado? É assim que as coisas funcionam, melhor do que apenas responder pequenas respostas
Chopper3

33
sudo chsh -s /path/to/shell username

onde shell é o que você deseja para esse usuário. sudonão é necessário se você souber usernamea senha.

man chsh

para mais exemplos.


funciona também para root para su, que não é visível no painel de controle. Eu acho que?
Chris F Carroll

4
Você também pode executar just chshe alterar o campo shell. Se você receber um erro como chsh: /usr/local/bin/bash: non-standard shell, adicione /usr/local/bin/basha /etc/shells.
Lri

3
Talvez algo tenha mudado no 10.9, mas esse comando agora lança uma mensagem de uso. Parece que a sintaxe correta é agorachsh -s /path/to/shell username
Matthematics

9

O NetInfo foi substituído pelos Serviços de Diretório (dscl) e pode-se observar o shell padrão para o Mac OS X desde que a versão 10.3 tenha sido realizada. Antes disso, era tcsh.

Se você precisar fazer isso na linha de comando (por exemplo, para enviar via ARD ou remotamente via SSH), execute:

sudo dscl localhost -change /Local/Default/Users/USERNAME shell OLD_SHELL NEW_SHELL
#In Use:
sudo dscl localhost -change /Local/Default/Users/chealion shell /bin/bash /bin/zsh

Se você não tem certeza do shell atual, pode executar:

sudo dscl localhost -read /Local/Default/Users/USERNAME shell

Se o usuário não for um usuário local, o caminho será alterado e, se necessário, você mudará localhostpara o nome do seu Open Directory Server. (Supondo que execute 10,5).

As informações são armazenadas em .plists (xml) em /private/var/db/dslocal/- você não deseja editar os arquivos plist manualmente.


7

Para 10.10:

não shellmas UserShell:

sudo dscl localhost -change /Local/Default/Users/USERNAME UserShell /bin/bash /bin/ksh
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.