o usuário não existe em / etc / passwd ao tentar alterar o shell padrão

16

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, não estou em / etc / passwd. Eu não sei porque.

O que posso fazer?

    
por rmp251 21.09.2013 / 01:01

5 respostas

10

Meu computador faz parte de uma rede usando a autenticação distribuída para que os detalhes do meu usuário não apareçam no arquivo local / etc / passwd (mas são visíveis usando o ID do usuário getent passwd). (obrigado @steeldriver) No meu caso eu tive que fazer chsh em uma máquina core.

    
por rmp251 14.01.2014 / 18:33
6

Existe uma solução alternativa para gnome-terminal :

  1. Vá para Editar - > Preferências de perfil - > Título e comando
  2. Marque Executar um comando personalizado em vez do meu shell
  3. Forneça bash como o comando personalizado (ou fish ou qualquer coisa)
por MrMeszaros 28.08.2017 / 08:52
4

Se você quiser alterar o shell do seu usuário, não será necessário torná-lo root. Basta digitar:

chsh

sem sudo e sem argumentos.

Veja também man chsh :

The chsh command changes the user login shell. This determines the name
of the user's initial login command. A normal user may only change the
login shell for her own account; the superuser may change the login
shell for any account.
    
por Andrea Corbellini 21.09.2013 / 10:50
4

Se você está usando a autenticação LDAP pelo PAM ou algo assim, você tem que encontrar sua resposta no seu servidor LDAP, vamos direcioná-lo para o Microsoft AD, neste caso sua conta de domínio não está em / etc / passwd quando você logar, mas você pode ver sua propriedade de usuário no AD, por #getent passwd | grep user, se no final ele mostrar que seu shell é / bin / csh é porque no seu AD existe um atributo para isso, Então id você tem conta de administrador no AD, você pode corrigi-lo, caso contrário, basta dizer ao seu administrador AD, ativar recursos avançados na guia Exibir de usuários do Active Directory e computadores > propriedades do usuário > Atributos do UNIX > altere o shell de login para / bin / bash

tenha certeza que você não esqueceu: sudo / opt / pbis / bin / config LoginShellTemplate / bin / bash

se você usou da mesma maneira ou ...

feito! link

    
por Masoud 04.06.2015 / 18:56
2

Se você esqueceu seu nome de usuário, você pode usar o comando whoami para lembrar de você.

Então, tente com:

sudo chsh $(whoami)

Se realmente não existir uma linha que comece com o seu nome de usuário no arquivo /etc/passwd (o que parece inexplicável), você pode adicionar um novo como este:

username:x:1000:1000:your real name,,,:/home/username:/bin/bash

Veja também: Compreendendo o formato do arquivo / etc / passwd .

    
por Radu Rădeanu 21.09.2013 / 09:43

Tags