
Me encanta el pescado. Tengo un buen servidor Ubuntu 8.04 que ejecuta algunos servicios. Así que edité el archivo /etc/passwd, como lo hice en el pasado, para cambiar mi shell predeterminado de bash a fish. Y sí, cometí un error tipográfico (por cierto: sé sobre chsh, soy así de estúpido y demasiado confiado). Por favor, deja de reírte.
Como era de esperar, ahora no puedo iniciar sesión. ¿Es posible iniciar sesión sin reiniciar el servidor? Sé que puedo reiniciar el servidor en modo seguro y solucionar el problema, pero me gustaría evitarlo.
Ah, sí, no tengo ningún otro usuario con derechos sudo en ese servidor. Deja de reírte de nuevo.
Por cierto, hice el desorden usando ssh, pero tengo fácil acceso físico al servidor, está a solo un par de habitaciones de distancia.
Respuesta1
Lamentablemente no; te has bloqueado. SSH no le permitirá iniciar sesión si falta el shell. Así es como se ve el intento en /var/log/auth.log
:
Dec 23 15:04:59 ubuntu sshd[5585]: User kees not allowed because shell /bin/fish does not exist
Y el inicio de sesión TTY en la consola siempre intentará iniciar su shell configurado. Sin otro usuario con sudo
derechos, deberás iniciar en modo de usuario único para solucionarlo. :(
Respuesta2
Si tiene una contraseña de root configurada, puede iniciar sesión como root en la propia máquina (ya sea en X o en una consola virtual presionando alt-F1), o iniciar sesión de forma remota como un usuario que no sea sudoing y luego cambiar a root usando su
en una terminal.
Por supuesto, Ubuntu no te permite iniciar sesión como root de forma predeterminada, por lo que se supone que lo has cambiado previamente.
Respuesta3
Si desea restaurar algunos archivos de configuración a un estado anterior, siempre puede intentar editarlos, iniciando su servidor con una versión Live de algún CD de Ubuntu, monte la partición real donde se encuentran los archivos /etc y edítelos usando vi.
También puede editar el archivo /etc/sudoers para otorgar a más usuarios los derechos para convertirse en root.