Modificado accidentalmente .bashrc y ahora no puedo iniciar sesión a pesar de ingresar la contraseña correctamente

23

Me equivoqué a lo grande con el archivo bashrc. Estaba instalando Gurobi y tuve que establecer variables de ruta en el archivo bashrc. Entonces, reemplacé todo el texto en bashrc con las variables de ruta y guardé el archivo bashrc. Y también me aseguré de que, si pasa algo malo, tengo una copia de seguridad de este archivo. El archivo de copia de seguridad original no modificado se encuentra en la carpeta Descargas.

Ahora, cuando reiniciaba el sistema, no podía iniciar sesión a pesar de proporcionar la contraseña correcta. Por lo tanto, me gustaría pedirle ayuda. ¿Qué tipo de soluciones son posibles dado el hecho de que todavía tengo el archivo bashrc en el directorio de descargas?

cripto
fuente
1
use grub rescue o una sesión en vivo para copiarlo del directorio de descargas sobre el incorrecto.
Rinzwind
¿podría por favor elaborar su sugerencia? Todavía soy un principiante cuando se trata de ubuntu
crypto
1
Ahora me pregunto qué pasó con la opción de seguridad que solía existir en la pantalla de inicio de sesión para este tipo de escenario.
Kasperd
3
¿Por qué no iniciar sesión como root y corregir el archivo .bashrc de su usuario?
jamesqf
3
La forma clásica es arrancar en modo de usuario único. Debe interrumpir el gestor de arranque y agregar "single" a la línea que especifica su kernel y los parámetros de arranque, como se describe aquí, por ejemplo .
Peter - Restablece a Monica el

Respuestas:

38

Use LiveUSB o LiveDVD.

Inicie en sesión en vivo, monte su disco duro y copie su .bashrcarchivo original sobre el modificado.

Luego puede reiniciar de forma segura (expulsar USB o DVD).

Información general: en caso de que no tenga una copia de seguridad del .bashrcarchivo, puede usar la de liveUSB / DVD.

Michal Polovka
fuente
Supongo que el objetivo de hacer copias de seguridad es cuando sus archivos son diferentes de los predeterminados del CD de instalación.
Dmitry Grigoryev
2
Sí, lo son, pero también existe la posibilidad de que hayas arruinado algo y no sabes exactamente qué, o no tienes respaldo. Es por eso que agregué a la respuesta a la pregunta de OP también información general para quien no tenga respaldo;)
Michal Polovka
Bueno, sí, si no tienes una copia de seguridad de algo que has arruinado, tendrás que comenzar desde cero. Afortunadamente, el OP tiene uno.
Dmitry Grigoryev
25

Debería poder iniciar en modo de recuperación , lo que le permitirá caer en un shell raíz y luego corregir el problema desde allí. Esto evita la necesidad de descargar un sistema operativo adicional.

Instrucciones tomadas de Ubuntu wiki:

  1. Enciende tu computadora.
  2. Espere hasta que el BIOS haya terminado de cargarse o casi haya terminado. (Durante este tiempo, probablemente verá un logotipo del fabricante de su computadora).
  3. Presione y mantenga presionada la tecla Mayús, que abrirá el menú GNU GRUB. (Si ve el logotipo de Ubuntu, se ha perdido el punto en el que puede ingresar al menú de GRUB).

  4. Seleccione la línea que comienza con " Advanced options".

  5. Seleccione la línea que termina con " (recovery mode)", probablemente la segunda línea, algo así como:

    Ubuntu GNU/Linux, with Linux 3.8.0-26-generic (recovery mode)

  6. Presione Retorno y su máquina comenzará el proceso de arranque.

  7. Después de unos momentos, su estación de trabajo debería mostrar un menú con varias opciones. Una de las opciones (es posible que deba desplazarse hacia el final de la lista) será " Drop to root shell prompt". Presione Retorno con esta opción resaltada.

  8. La partición raíz está montada de solo lectura. Para montarlo lectura / escritura, ingrese el comando

    mount -o remount,rw /

  9. Si tiene / home, / boot, / tmp o cualquier otro punto de montaje en una partición separada, puede montarlos con el comando

    mount --all

    (Esto debe hacerse siguiendo el paso 8 para que /etc/mtabse pueda escribir).

Si no tiene la opción de recuperación, puede presionar eGRUB para editar la opción de arranque estándar y agregarla recoveryal final de la linuxlínea (la última línea por defecto, justo antes initrd). Luego presione F10para ejecutarlo.

Mover
fuente
9

Use un CD en vivo

  1. Arrancar usando CD / DVD en vivo. En caso de que no tenga la iso y no quiera descargar la iso grande, descargue Tiny Core - 10MB.
  2. En una línea de comando, escriba sudo mount /dev/sdXn /mntdónde sdXnestá su partición de Ubuntu.
  3. Tipo cd /mnt/home/<your user name>/Downloads.
  4. Ahora restaure su .bashrccomo nuevo .bashrcusando este comando mv ../.bashrc ../.bashrc_old && cp ./.bashrc ../.
  5. Ahora reinicie en su sistema y debería estar listo para comenzar.
Ceda EI
fuente
8

Inserte el DVD o USB que utilizó para instalar Ubuntu y arranque desde él. Elija "probar Ubuntu" y espere a que regrese al escritorio.

Verifique los discos en los lauchers para el que tiene su hogar. Al hacer clic, se monta en / media /

Abra un terminal y cden él a sus Descargas y copie el archivo en su hogar. Eso sería:

cd /media/home/{your_username}/Downloads/
sudo cp .bashrc ../

y reiniciar sin el dvd / USB.

Rinzwind
fuente
Me sale algo como cp: no se puede crear el archivo normal '../bashrc': permiso denegado. :(
crypto
ah uso sudo! :)
Rinzwind
Era una pregunta tonta. Lo siento. ¡Lección aprendida! Y como usted sugirió, acepto la respuesta de Michal. Espero que esté bien
crypto
no es un problema, estoy en 200 de todos modos> :)
Rinzwind
6

Conectarse a través de SFTP

Conéctese al sistema mediante SFTP, ya sea desde el sftpcomando incorporado de otra máquina Linux o desde una PC con WinSCP o FileZilla, y repare el archivo. El .bashrcarchivo normalmente no está involucrado en SFTP (es posible modificar su authorized_keysarchivo para que participe, pero es dudoso que lo haya hecho).

Monty Harder
fuente
O, de manera similar, conéctese con ssh dash(o cualquier otro shell que no sea bash).
Peter Taylor
5

Sugiero siempre tener DOS cuentas de sudo. Estas son cuentas que pueden actuar como root en la mayoría de los casos, si proporciona la contraseña normal para esa cuenta. Temporalmente puedes actuar como root.

Si arruinas una cuenta, puedes arreglarla con la otra.

Pero, PUEDE ser posible estar en una cuenta REGULAR y 'su jodido-nombre-cuenta-sudo' si conoce la contraseña. Entonces actuará como la cuenta jodida y puede 'sudo cp backup .bashrc' después de 'dc / home / jodido-cuenta' Ahora es posible sin que se arruine, pero no estoy seguro en su caso particular.

Dennis
fuente
4

Como dicen algunas personas, más de una cuenta "sudo" es la mejor manera de hacerlo. En segundo lugar, si realiza muchas modificaciones en su archivo .bashrc, suelte una copia en un dispositivo de memoria antes de comenzar a retocar, entonces no tiene que comenzar de nuevo con un espacio en blanco, puede volver al último bien conocido. archivo bashrc sin perder todos sus retoques anteriores. Lo primero que hago al jugar con mi .bashrc o .vimrc o. . . cualquier archivo de configuración es hacer una copia en mi dispositivo de memoria antes de comenzar. Soy humano tengo hijos me distraigo jajaja. Tengo una tarjeta de memoria llena de archivos de configuración para bash, vim, conky, openbox, tint2 y más.

Skytale
fuente
Otro truco es usar RCS para el historial de versiones de los archivos de configuración (como bashrc, vimrc o cualquier cosa en / etc).
ChuckCottrill
0

Inicie sesión como root en su lugar y use su copia de seguridad para arreglar su .bashrc como en las otras respuestas.

Para una seguridad óptima, no inicie sesión en el entorno normal de X Windows. En su lugar, presione control-alt-F2para ir a una consola de texto e inicie sesión. Una vez que haya solucionado el problema, ejecute exitpara cerrar sesión desde el shell raíz, luego presione control-alt-F7para volver a X Windows. (Tenga en cuenta que X Windows podría estar en tty1 en lugar de tty7, por lo que es posible que deba usarlo control-alt-F1. Tty6 o tty7 son históricamente tradicionales, pero algunas distribuciones lo están moviendo a tty1 porque la gente rara vez usa ttys son más. Ubuntu puede o no tener hecho así. Experimente para averiguar de qué manera está configurado su sistema).

db48x
fuente
La cuenta raíz está deshabilitada en Ubuntu, por lo que, a menos que la haya habilitado, no hay forma de iniciar sesión como root.
Seth
1
@Seth Si tiene acceso al gestor de arranque, puede arrancar en modo de recuperación y obtener un shell raíz allí.
Bob
@Bob cierto, pero eso no es lo que dice la respuesta. Sin embargo, eso debería funcionar.
Seth
1
@Seth Sí, ya he agregado mi propia respuesta con más detalles allí. Ah, por cierto @ db48x, normalmente X11 se ejecuta en tty7(Ctrl + Alt + F7), no tty1.
Bob
Ouch, no sabía que deshabilitaron la cuenta raíz. Tal vez no actualice mi única máquina Ubuntu después de todo ...
db48x
0

Cada vez que encendí la PC después de este incidente, me saludaron con la pantalla de inicio de sesión habitual de ubuntu, excepto que después de ingresar la contraseña, la pantalla parpadeó por un segundo y la pantalla de inicio de sesión se presentó nuevamente.

No sé si este fue tu problema, pero esto me sucedió una vez. Si alguno de los archivos cargados en shell-start (.bashrc, .bash_profile, .profile) genera texto en stdout, no podrá iniciar sesión gráficamente. Todavía puede entrar en un tty (ctrl + alt + f1), iniciar sesión desde allí y luego recuperar su archivo.

Scimonster
fuente