Eu quero mudar meu shell padrão de tcsh para bash. Então eu tentei e foi o que aconteceu:
>sudo chsh userid
Changing the login shell for userid
Enter the new value, or press ENTER for the default
Login Shell [/xhbin/tcsh]: /bin/bash
chsh: user 'userid' does not exist in /etc/passwd
Na verdade, eu não estou no / etc / passwd. Não sei porque.
O que eu posso fazer?
getent passwd <userid>
). Eu acho que se runningchsh
é suportado nesse caso pode depender de configurações em/etc/pam.d/
Respostas:
Meu computador faz parte de uma rede usando autenticação distribuída para que meus detalhes de usuário não apareçam no arquivo local / etc / passwd (mas sejam visíveis usando getent passwd userid). (obrigado @steeldriver) No meu caso, eu tive que fazer chsh em uma máquina principal.
fonte
Existe uma solução alternativa para
gnome-terminal
:bash
como o comando personalizado (oufish
, ou qualquer coisa)fonte
Se você estiver usando a autenticação LDAP pelo PAM ou algo assim, precisará encontrar sua resposta no servidor LDAP. Vamos apontar para o Microsoft AD; nesse caso, sua conta de domínio não está
/etc/passwd
quando você faz login, mas você pode ver sua propriedade de usuário no AD, porgetent passwd | grep user
.Se, no final, mostrar que o seu shell está
/bin/csh
, é porque no seu AD há um atributo para isso. Portanto, se você tiver uma conta de administrador no AD, poderá corrigi-la. Caso contrário, basta dizer ao administrador do AD para ativar os recursos avançados na guia Exibir dos usuários e computadores do Active Directory> Propriedades do usuário> Atributos UNIX . Lá você pode alterar o shell de login para/bin/bash
.Certifique-se de não esquecer de executar:
Fonte: O usuário não existe no / etc / passwd ao tentar alterar o shell padrão .
fonte
Se você deseja alterar o shell para seu usuário, não precisa se tornar root. Basta digitar:
sem
sudo
e sem argumentos.Veja também
man chsh
:fonte
> whoami userid > chsh You may not change the shell for 'userid'.
Se você esqueceu seu nome de usuário, pode usar o
whoami
comando para lembrar de você.Então, tente com:
Se, de fato, não existir uma linha começando com seu nome de usuário no
/etc/passwd
arquivo (o que parece inexplicável), você poderá adicionar uma nova como esta:Consulte também: Noções básicas sobre o formato de arquivo / etc / passwd .
fonte
Se você estiver tentando fazer o ssh em um host remoto com um usuário de domínio, talvez não seja possível alterar seu shell usando
chsh
como o @Masoud mencionado. Mas aqui está uma solução simples para este caso - sempre que você fizer uma ssh na máquina, faça o seguinte:ssh my-host -t "zsh --login"
ou
ssh my-host -t "cd /data/repos; zsh --login"
Se você também quiser fazer login diretamente em um diretório de trabalho diferente.
fonte