Aprendí un nuevo comando, al menos pensé, porque este comando: chsh
no se comporta como se describe.
Fue descrito para trabajar así:
cat /etc/shells
para saber qué shells están instalados, para que pueda elegir entre ellos.- hace
echo $SHELL
saber, que shell que esté utilizando. - elige una de las conchas y escribe
chsh -s /path/to/shell
- ingrese la contraseña y verifique con
echo $SHELL
que está en un nuevo shell.
He hecho esto y no recibí ningún mensaje de error al ingresar la contraseña, pero todavía estaba en el mismo shell.
% echo $SHELL
/bin/bash
% cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash
% chsh -s /bin/sh
Password:
% echo $SHELL
/bin/bash
shell
ubuntu
command-line
Sharkant
fuente
fuente
Respuestas:
Cerrar sesión e iniciar sesión nuevamente.
El
chsh
comando actualizará el/etc/passwd
archivo, pero no cambia el shell actual ni el valor de la$SHELL
variable en el shell actual (no tiene forma de hacerlo). Esta es la razón por la que necesita iniciar sesión nuevamente; debe iniciar una nueva sesión de inicio de sesión para que un cambio surta efecto.fuente
/etc/passwd
no se lee hasta que inicie sesión la próxima vez. Tendrá que cerrar sesión por completo e iniciar sesión nuevamente para que el cambio surta efecto. Si no lo hace, reiniciar la máquina también funcionará.Usar el comando de utilidad usermod funcionó en mi caso. Ejecutando en ubuntu 18.04.
grep nameofuser /etc/passwd
sudo usermod --shell /bin/bash nameofuser
grep nameofuser /etc/passwd
fuente