Como faço para alterar meu shell padrão em uma conta de domínio

10

Eu uso uma conta de domínio samba4 para fazer login no meu laptop. Eu queria experimentar zsh out, mas como meu usuário não reside em /etc/passwd , descobri que chsh não pode encontrar meu usuário. Alguém pode aconselhar como eu posso mudar meu login_shell ?

Não consegui ver nada em ldap.conf , nssswitch.conf ou em /etc/pam.d que ajudou ...

Olhando no controlador de domínio, pensei que talvez pudesse usar a ferramenta de samba, mas não vi nada na ajuda que me apontasse na direção certa ...

    
por Rumbles 15.11.2015 / 08:00

3 respostas

17

Eu perguntei sobre isso no canal #suse no Freenode, e Miuku sugeriu o mesmo que Arul, no entanto, ele mencionou duas coisas: se eu estivesse usando um domínio do Windows, eu poderia definir o atributo loginShell.

Infelizmente, estou em um domínio de samba, então isso não ajudou. Mas sua sugestão final foi perfeita, pegue a saída de:

getent passwd USERNAME

Isto terá a entrada válida equivalente para seu usuário em / etc / passwd, pegue isto, cole-o em / etc / passwd e atualize o shell no final para o caminho válido do shell que você quer usar. Dessa forma, isso não muda para todos os usuários, e você pode ter certeza de que o shell está na máquina em que você está configurando antes de fazer a alteração.

    
por 10.12.2015 / 12:36
2

Se você tiver acesso para editar a configuração do controlador de domínio samba, poderá definir a seguinte propriedade que permite definir o shell em smb.conf

template shell    = /bin/zsh

Não tenho certeza do que acontece se você fizer login em uma máquina que não tenha o zsh instalado (nem todas as distribuições têm o zsh instalado por padrão), mas meu palpite é que ele invocará o shell default do distro.

Se você simplesmente quer tentar, basta digitar zsh para obter um subshell que eu tenho certeza que você já conhece.

    
por 15.11.2015 / 15:08
2

Eu tive exatamente o mesmo problema. Como nem todas as máquinas no meu domínio têm o zsh instalado, e como eu não queria afetar todos os usuários, acabei colocando o meu .bashrc:

if [ -x /usr/bin/zsh ]; then
  echo 'starting zsh'
  # export SHELL=/bin/zsh #edit: this is probably not what you want, see the comment.
  exec /usr/bin/zsh
fi

Isso pode ser deselegante, mas pelo menos faz o trabalho.

    
por 15.02.2018 / 10:36