Quiero cambiar mi shell predeterminado de tcsh a bash. Así que lo intenté y esto es lo que sucedió:
>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
De hecho, no estoy en / etc / passwd. No se porque.
¿Que puedo hacer?
getent passwd <userid>
). Creo que si la ejecuciónchsh
es compatible en ese caso puede depender de la configuración en/etc/pam.d/
Respuestas:
Mi computadora es parte de una red que usa autenticación distribuida, por lo que los detalles de mi usuario no aparecerían en el archivo local / etc / passwd (pero son visibles usando getent passwd userid). (gracias @steeldriver) En mi caso tuve que hacer chsh en una máquina central.
fuente
Hay una solución para
gnome-terminal
:bash
como el comando personalizado (ofish
, o cualquier cosa)fuente
Si está utilizando la autenticación LDAP por PAM o algo así, debe encontrar su respuesta en su servidor LDAP. Apuntemos a Microsoft AD, en cuyo caso su cuenta de dominio no se encuentra
/etc/passwd
cuando inicia sesión, pero puede ver su propiedad de usuario en AD, porgetent passwd | grep user
.Si al final muestra que su shell es
/bin/csh
, es porque en su AD hay un atributo para eso. Entonces, si tiene una cuenta de administrador en AD, puede arreglarlo usted mismo. De lo contrario, solo dígale a su administrador de AD que habilite las funciones avanzadas en la pestaña Ver de Usuarios y computadoras de Active Directory> Propiedades de usuario> Atributos de UNIX . Allí puede cambiar el shell de inicio de sesión a/bin/bash
.Asegúrate de no olvidarte de correr:
Fuente: el usuario no existe en / etc / passwd al intentar cambiar el shell predeterminado .
fuente
Si desea cambiar el shell de su usuario, no necesita convertirse en root. Sólo tipo:
sin
sudo
y sin argumentos.Ver también
man chsh
:fuente
> whoami userid > chsh You may not change the shell for 'userid'.
Si olvidó su nombre de usuario, puede usar el
whoami
comando para recordarlo.Entonces, intente con:
Si, de hecho, no existe una línea que comience con su nombre de usuario en el
/etc/passwd
archivo (lo que parece inexplicable), puede agregar uno nuevo como este:Consulte también: Comprensión del formato de archivo / etc / passwd .
fuente
Si está intentando ingresar a un host remoto con un usuario de dominio, es posible que no pueda cambiar su shell utilizando
chsh
como se menciona en @Masoud. Pero aquí hay una solución simple para este caso: cada vez que ingrese a la máquina, haga lo siguiente:ssh my-host -t "zsh --login"
o
ssh my-host -t "cd /data/repos; zsh --login"
Si también desea iniciar sesión directamente en un directorio de trabajo diferente.
fuente