Editar el file / etc / passwd de grub

Intenté instalar zsh en ubuntu (14.04). Cuando cambié a zsh, no pude pasar al modo súper usuario.

Si hago un su, pregunta por contraseña y al ingresar la contraseña correcta, dice:

Cannot execute which zsh: No such file or directory 

Pero cuando ingreso una contraseña incorrecta y presiono Enter 4-5 veces, no muestra nada.

Al verificar mi /etc/passwd , mostró:

 root:x:0:0:root:/root:which zsh 

Traté de editar el file y savelo, pero muestra

 Unable to save /etc/passwd 

He intentado cambiar el nivel de ejecución a 1 a través de grub, pero se produce un error:

 APCI PCC probe failed 

Estoy ejecutando Ubuntu en VirtualBox.

Debe eliminar del file de passwords la palabra … Debe ser algo así como:

 root:x:0:0:root:/root:/bin/zsh 

Donde / bin / zsh es la ruta al binary de la shell Z.
En la configuration actual, el process de inicio de session está intentando ejecutar which zsh y ese command están fallando.

Además, edite el file como root, con sudo vim /etc/passwd por ejemplo, porque es un file que solo se puede escribir por root.

Si no puede sudo o su , inicie en modo de recuperación (elija la opción Avanzada para Ubuntu en el gestor de arranque GRUB, luego elija Ubuntu … (modo de recuperación), luego elija la opción Root / Drop to root shell). Después de esto, vuelva a montar el / filesystem como de lectura-escritura ( mount -o remount,rw / ) y luego puede editar el contenido del /etc/passwd . Probado esto en Ubuntu 16.04.

No puede editar files desde el prompt de Grub (Grub solo puede leer files, no tiene soporte de escritura). Necesita iniciar Linux¹.

Si no puede iniciar session normalmente, puede omitir por completo el process de inicio normal y comenzar solo un kernel y un shell. En el indicador de Grub, presione e para editar la secuencia de inicio, agregue init=/bin/bash al final de la línea linux=… y presione Ctrl + X para iniciar. Obtendrás un shell raíz y nada más. correr

 mount -t proc proc /proc mount -o remount,rw / 

Ahora ejecute chsh -s /bin/zsh root para reparar su database de usuario.

A continuación, reinicie con Alt + SysRq + U seguido de Alt + SysRq + B , o arranque normalmente con

 mount -o remount,ro / umount /proc exec /sbin/init 

Consejo: ejecute chsh sin un argumento de usuario . De esa forma, valida el shell.

Consejo: cuando esté cambiando alguna configuration, mantenga siempre un shell abierto y pruebe la configuration. Si cometió un error, todavía tendrá una línea de command para repararlo.

Sugerencia: puede crear una count toor con UID 0 (por lo que sigue siendo root), con la misma contraseña que root, y donde el shell permanece /bin/sh , de modo que tenga otra forma de iniciar session si se rompen las cosas. Mejor aún, instale un shell estáticamente vinculado ( busybox-static o zsh-static ) y úselo como el shell de inicio de session de toor.

¹ O puede usar guestfs si el host es Linux.

Si conoce la contraseña de root, puede ejecutar su -s /bin/bash para get un shell de root bash.

sudo -s /bin/bash debería funcionar, y dependiendo de cómo sudo esté configurado, necesitará conocer su contraseña o contraseña.

Luego puede usar chsh -s /bin/bash para cambiar el shell de root a bash.

Por cierto, generalmente es una mala idea cambiar el shell de root en cualquier sistema Unix. Muchos trabajos de cron, etc. dependen de que el shell de root sea el shell raíz pnetworkingeterminado para ese sistema operativo y se romperá si lo cambias.

Pls intente sudo vi / etc / passwd e ingrese su contraseña de usuario actualmente registrada.

También puede encontrar la ruta correcta de shell en / etc / shell

Y para comprobar el shell actual pls intente echo $ SHELL