Modificado acidentalmente .bashrc e agora não consigo fazer login, apesar de inserir a senha corretamente


23

Eu estraguei tudo com o arquivo bashrc. Eu estava instalando o Gurobi e tive que definir as variáveis ​​de caminho no arquivo bashrc. Então, substituí todo o texto no bashrc pelas variáveis ​​de caminho e salvei o arquivo bashrc. E também verifiquei que, se algo de ruim acontecer, tenho um backup desse arquivo. O arquivo de backup original não modificado está na pasta Downloads.

Agora, quando reiniciei o sistema, não consegui entrar, apesar de fornecer a senha correta. Por isso, gostaria de pedir ajuda. Que tipo de correção é possível, considerando que ainda tenho o arquivo bashrc no diretório Downloads


1
use o grub rescue ou uma sessão ao vivo para copiá-lo do diretório de downloads para o incorreto.
Rinzwind

você poderia elaborar sua sugestão? Eu ainda sou iniciante quando se trata de ubuntu
crypto

1
Agora, você me perguntou o que aconteceu com a opção à prova de falhas que existia na tela de login para esse tipo de cenário.
kasperd

3
Por que não fazer login como root e corrigir o arquivo .bashrc do usuário?
Jamesqf # 27/16

3
A maneira clássica é inicializar no modo de usuário único. Você precisa interromper o carregador de inicialização e adicionar "single" à linha, especificando seus parâmetros de kernel e de inicialização, conforme descrito, por exemplo, aqui .
Peter - Restabelece Monica

Respostas:


38

Use LiveUSB ou LiveDVD.

Inicialize na sessão ao vivo, monte seu disco rígido e copie o .bashrcarquivo original sobre o modificado.

Em seguida, você pode reiniciar com segurança (ejetar USB ou DVD).

Informações gerais: Caso você não tenha um backup do .bashrcarquivo, você pode usá-lo no liveUSB / DVD.


Suponho que todo o objetivo de fazer backup é quando os arquivos são diferentes dos arquivos padrão do CD de instalação.
Dmitry Grigoryev 28/10

2
Sim, são, mas também há a possibilidade de você estragar alguma coisa e não saber exatamente o que é, ou não ter backup. É por isso que eu adicionei a resposta a OPs questionar info também geral para quem não pode ter backup;)
Michal Polovka

Bem, sim, se você não tiver um backup de algo que arruinou, terá que começar do zero. Felizmente, o OP tem um.
Dmitry Grigoryev 28/10

25

Você poderá inicializar no modo de recuperação , o que permitirá que você entre em um shell raiz e corrija o problema a partir daí. Isso evita a necessidade de baixar um sistema operacional adicional.

Instruções retiradas do wiki do Ubuntu:

  1. Ligue o seu computador.
  2. Aguarde até o BIOS terminar de carregar ou quase terminar. (Durante esse período, você provavelmente verá um logotipo do fabricante do computador.)
  3. Pressione e segure rapidamente a tecla Shift, que abrirá o menu GNU GRUB. (Se você vir o logotipo do Ubuntu, perdeu o ponto em que pode entrar no menu do GRUB.)

  4. Selecione a linha que começa com " Advanced options".

  5. Selecione a linha que termina com " (recovery mode)", provavelmente a segunda linha, algo como:

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

  6. Pressione Return e sua máquina iniciará o processo de inicialização.

  7. Após alguns instantes, sua estação de trabalho deve exibir um menu com várias opções. Uma das opções (pode ser necessário rolar para o final da lista) será " Drop to root shell prompt". Pressione Retornar com esta opção destacada.

  8. A partição raiz é montada somente leitura. Para montá-lo para leitura / gravação, digite o comando

    mount -o remount,rw /

  9. Se você tiver / home, / boot, / tmp ou qualquer outro ponto de montagem em uma partição separada, poderá montá-los com o comando

    mount --all

    (Isso deve ser feito após a etapa 8, para que /etc/mtabseja gravável.)

Se você não tiver a opção de recuperação, poderá pressionar eno GRUB para editar a opção de inicialização padrão e adicionar recoveryno final da linuxlinha (a segunda e última linha por padrão, logo antes initrd). Em seguida, pressione F10para executá-lo.


9

Use um CD ao vivo

  1. Inicialize usando CD / DVD ao vivo. Caso você não tenha o iso e não queira fazer o download do iso grande, faça o download do Tiny Core - 10MB.
  2. Em uma linha de comando, digite sudo mount /dev/sdXn /mntonde sdXnestá sua partição Ubuntu.
  3. Digite cd /mnt/home/<your user name>/Downloads.
  4. Agora restaure o seu .bashrccomo seu novo .bashrcusando este comando mv ../.bashrc ../.bashrc_old && cp ./.bashrc ../.
  5. Agora reinicie o seu sistema e você deve estar pronto.

8

Insira o dvd ou USB que você usou para instalar o Ubuntu e inicialize a partir dele. Escolha "experimente o Ubuntu" e aguarde o retorno da área de trabalho.

Verifique os discos nos lavadores para o que possui sua casa. Clicar nele o monta em / media /

Abra um terminal e cdentre em seu Downloads e copie o arquivo em sua casa. Isso seria:

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

e reinicie sem o dvd / USB.


Recebo algo como cp: não é possível criar o arquivo regular '../bashrc': permissão negada. :(
crypto

ah uso sudo! :)
Rinzwind 26/10

Era uma pergunta esfarrapada. Desculpe. Lição aprendida! E como você sugeriu, estou aceitando a resposta de Michal. Espero que esteja tudo bem #
crypto

não é um problema, eu estou no 200 de qualquer maneira> :)
Rinzwind

6

Conectar via SFTP

Conecte-se ao sistema via SFTP, a partir do sftpcomando interno de outra máquina Linux ou de um PC com WinSCP ou FileZilla, e repare o arquivo. O .bashrcarquivo normalmente não está envolvido no SFTP (é possível ajustá authorized_keys-lo para envolvê-lo, mas é provável que você tenha feito isso).


Ou, da mesma forma, conecte-se a ssh dash(ou qualquer outro shell que não seja do bash).
Peter Taylor

5

Sugiro sempre ter duas contas sudo. São contas que podem atuar como raiz em QUASE todos os casos, se você der a senha normal para essa conta. Você temporariamente age como raiz.

Se você estragar uma conta, poderá corrigi-la com a outra.

Mas, PODE ser possível estar em uma conta REGULAR e 'su parafusou-sudo-nome-da-conta' se você souber a senha. Então você estará agindo como a conta estragada e poderá 'sudo cp backup .bashrc' após 'dc / home / estragou a conta'. Agora, é possível sem que seja estragada, mas não tenho certeza no seu caso particular.


4

Como dito por algumas pessoas, mais de uma conta "sudo" é o melhor caminho a percorrer. Em segundo lugar, se você fizer muitos mods no seu arquivo .bashrc, solte uma cópia em um cartão de memória antes de começar a mexer e não precisará começar de novo com um espaço em branco, poderá voltar ao último bem conhecido. arquivo bashrc sem perder todos os seus ajustes anteriores. A primeira coisa que faço ao mexer no meu .bashrc ou .vimrc ou. . . qualquer arquivo de configuração é fazer uma cópia no meu cartão de memória útil antes de começar. Sou humano, tenho filhos, me distraio lol. Eu tenho um cartão de memória cheio de arquivos de configuração para bash, vim, conky, openbox, tint2 e muito mais.


Outro truque é usar o RCS para o histórico de versões dos arquivos de configuração (como bashrc, vimrc ou qualquer outra coisa em / etc).
ChuckCottrill

0

Faça login como root e use seu backup para corrigir seu .bashrc, como nas outras respostas.

Para segurança ideal, não entre no ambiente X Windows normal. Em vez disso, pressione control-alt-F2para acessar um console de texto e faça o login. Depois de corrigir o problema, execute o exitlogout do shell raiz e pressione control-alt-F7para voltar ao X Windows. (Observe que o X Windows pode estar em tty1 em vez de tty7, portanto, você pode precisar usar control-alt-F1. Tty6 ou tty7 são historicamente tradicionais, mas algumas distros estão movendo-o para tty1 porque as pessoas raramente usam ttys. O Ubuntu pode ou não ter Experimente descobrir como seu sistema está configurado.)


A conta root está desativada no Ubuntu, portanto, a menos que você a tenha ativado, não há como fazer login como root.
Seth

1
@Seth Se você tiver acesso ao gerenciador de inicialização, poderá inicializar no modo de recuperação e obter um shell raiz lá.
27416 Bob

@ Bob verdade, mas não é isso que a resposta diz. Isso deve funcionar embora.
Seth

1
@ Sim Sim, eu já adicionei minha própria resposta com mais detalhes lá. Ah, btw @ db48x, normalmente o X11 é executado em tty7(Ctrl + Alt + F7), não tty1.
27416 Bob

Ai, eu não sabia que eles desabilitaram a conta root. Talvez eu não vou atualizar meu uma máquina Ubuntu depois de tudo ...
db48x

0

Toda vez que eu liguei o PC após esse incidente, fui recebido com a tela de login habitual do ubuntu, exceto que, após digitar a senha, a tela piscou por um segundo e a tela de login se apresentou novamente.

Não sei se esse foi o seu problema, mas isso aconteceu comigo uma vez. Se qualquer um dos arquivos carregados no shell-start (.bashrc, .bash_profile, .profile) enviar texto para stdout, você não poderá efetuar login graficamente. Você ainda pode entrar em um tty (ctrl + alt + f1), fazer login a partir daí e recuperar seu arquivo.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.