¿Cómo solucionar "iniciar sesión: sin shell: no existe tal archivo o directorio" cuando ni siquiera puedo iniciar sesión?

¿Cómo solucionar "iniciar sesión: sin shell: no existe tal archivo o directorio" cuando ni siquiera puedo iniciar sesión?

lo instalépezpez(un shell de línea de comandos interactivo fácil de usar) en un servidor Linux, luego alguien lo desinstaló pero no lo sé. Después de ejecutar chsh -s /usr/local/bin/fishsin precaución, no puedo iniciar sesión en el servidor ahora. Apareció el mensaje de error "iniciar sesión: sin shell: no existe tal archivo o directorio" que aparentemente dice que los mariscos ya no existen.

El servidor proporciona solo una interfaz CLI, entonces, ¿cómo puedo cambiar el shell de inicio de sesión cuando ni siquiera puedo iniciar sesión?

Respuesta1

Si tiene acceso a la cuenta raíz, puede cambiar el shell de un usuario desde allí usando chsh -u user -s $SHELL.

Si tiene acceso al proceso de arranque, puede agregarlo init=$SHELLpara que lo coloquen en un shell de un solo usuario, donde puede arreglar esto, nuevamente con chsh -u user -s $SHELL(algunos sistemas que usan un arranque de dos etapas con una imagen initrd pueden requerir que use real_initen su lugar) . Probablemente necesitará volver a montar el sistema de archivos que lo contiene /etc/passwdcomo lectura-escritura (usando mount -o remount,rw /o similar).

De lo contrario, si puede suingresar al usuario desde otro usuario, intente su user -c $SHELL, o si puede ingresar al usuario mediante ssh, puede intentar algo como ssh user@localhost $SHELL.

También puede iniciar en un CD/USB en vivo, montarlo /y repararlo /etc/passwdmanualmente.

Respuesta2

Tengo el mismo problema, esta solución me funciona:

  1. Arrancar con un cd en vivo (yo uso debían 7.6) en modo en vivo
  2. En la terminal en vivo, obtenga acceso de root ejecutando el comando:passwd root
  3. Monte el disco de la partición de su distribución bloqueada.
  4. Vaya a este disco y ejecute este comando:cat etc/shells
  5. Con nano etc/passwdeliminar las referencias de peces y poner un nombre de consola válido del punto 4.
  6. Reinicia y disfruta.

Respuesta3

Al intentar iniciar sesión recibí este mensaje: No se puede ejecutar /sbin/nologin: no existe tal archivo o directorio

Esto es lo que hice y funcionó para mí.

  1. Inicié sesión en el sistema con otra cuenta con privilegios de superusuario.
  2. Ingrese el siguiente comando:

sudo chsh -u usuario -s $SHELL

donde usuario es el nombre de la cuenta con el problema

  1. Cerrar sesión del sistema
  2. Inicie sesión con el nombre de la cuenta que tuvo un problema.

Respuesta4

También estaba enfrentando el mismo problema en Elementary OS Loki. Para resolver el problema realicé lo siguiente

  1. En primer lugar, elimino todo lo relacionado con zsh.sudo apt-get eliminar zsh && apt-get autoremove
  2. después de eso edité el/etc/contraseñay descubrí que el shell del usuario root no está definido, así que edité shell /bin/bash y todo esto me ayudó a resolver el problema.

información relacionada