
¿Puedo configurar zsh como shell predeterminado mientras estoy conectado como root? Lo hice chsh -s /bin/zsh
y usé mi contraseña de root para la autenticación, pero fallé.
Respuesta1
Un truco consiste en configurar shells raíz interactivos para usar zsh y dejar shells no interactivos para continuar usando /bin/sh.
Esto aún puede generar problemas de "expectativas" como se describe en otras respuestas, pero al menos no arruinará ningún proceso no interactivo.
Agregue lo siguiente al final de /root/.bashrc
if [ ! -z "$PS1" ]; then
exec /bin/zsh $*
fi
Respuesta2
En general, es una mala idea cambiar el shell raíz de /bin/sh. Es mejor agregar otra cuenta, por ejemplo zroot, que todavía tenga un UID de 0 pero tenga zsh como shell. Sin embargo, para intentar responder la pregunta, si inicia sesión como root, no necesita utilizar sudo
. Solo usa
chsh -s /bin/zsh root
y proporcione la root
contraseña en respuesta a la solicitud de chsh. Vale la pena especificar la 'raíz' explícitamente.
Si estás iniciando sesión como 'fred', entonces usa
sudo -i
y responda la solicitud de contraseña con fred's
contraseña. Esto debería darle un shell raíz. Continúe como si hubiera iniciado sesión originalmente como root.
Asegúrese de que /bin/zsh aparezca en /etc/shells.
Respuesta3
Probablemente olvidaste ejecutarlo, tiene root. Ejecute el siguiente comando:
$ sudo chsh -s /bin/zsh
Respuesta4
No se recomienda editar el archivo passwd con el editor normal para hacer este uso.
vipw
y cambie el shell a zsh, honestamente, no entiendo por qué desea cambiar el shell raíz, la cuenta raíz debe usarse solo para la administración, para el trabajo normal use un usuario sin privilegios. Después de esto, intente iniciar sesión en otro tty sin (es importante) desconectarse del tty actual, si funciona, podrá ver su nuevo shell. Si desea utilizar inmediatamente zsh, simplemente escriba zsh. Conclusión
I want to use my new shell now = type zsh
I want to use my new shell + change = chsh -s or vipw
ps= si su zsh no está instalado en esa ruta (/bin /sbin..) y tiene que iniciar sesión como usuario único con root, no funcionará porque no puede encontrar su shell, esto también puede suceder en el sistema con /usr separado desde raíz/montado en otro lvm o partición