Przypadkowo zmodyfikowałem plik .bashrc, a teraz nie mogę się zalogować, pomimo prawidłowego wprowadzenia hasła

23

Zepsułem bigtime z plikiem bashrc. Instalowałem Gurobi i musiałem ustawić zmienne ścieżki w pliku bashrc. Tak więc zamieniłem cały tekst w bashrc na zmienne ścieżki i zapisałem plik bashrc. Upewniłem się również, że jeśli coś złego się stanie, mam kopię zapasową tego pliku. Oryginalny niezmodyfikowany plik kopii zapasowej znajduje się w folderze Pobrane.

Teraz, gdy zrestartowałem system, nie mogłem się zalogować, mimo podania prawidłowego hasła. Dlatego chciałbym prosić o pomoc. Jakie poprawki są możliwe, biorąc pod uwagę fakt, że nadal mam plik bashrc w katalogu Pobrane

krypto
źródło
1
użyj grub rat lub sesji na żywo, aby skopiować go z katalogu plików do pobrania na niewłaściwy.
Rinzwind
czy mógłbyś rozwinąć swoją sugestię? Nadal jestem początkującym jeśli chodzi o ubuntu
crypto
1
Teraz zastanawiam się, co się stało z opcją bezpieczeństwa, która istniała na ekranie logowania dla tego rodzaju scenariusza.
kasperd
3
Dlaczego nie zalogować się jako root i poprawić plik .bashrc użytkownika?
jamesqf
3
Klasycznym sposobem jest uruchomienie w trybie pojedynczego użytkownika. Musisz przerwać moduł ładujący i dodać „single” do wiersza określającego jądro i parametry rozruchu, jak opisano na przykład tutaj .
Peter - Przywróć Monikę

Odpowiedzi:

38

Użyj LiveUSB lub LiveDVD.

Uruchom sesję na żywo, zamontuj dysk twardy i skopiuj oryginalny .bashrcplik na zmodyfikowany.

Następnie możesz bezpiecznie ponownie uruchomić komputer (wysunąć USB lub DVD).

Informacje ogólne: na wypadek, gdybyś nie miał kopii zapasowej .bashrcpliku, możesz użyć tej z liveUSB / DVD.

Michał Polówka
źródło
Zakładam, że celem tworzenia kopii zapasowych jest sytuacja, gdy pliki różnią się od domyślnych plików z instalacyjnej płyty CD.
Dmitry Grigoryev
2
Tak, są, ale istnieje również możliwość, że coś zrujnowałeś i nie wiesz dokładnie, albo nie masz kopii zapasowej. Dlatego w odpowiedzi na pytanie PO dodałem także ogólne informacje dla każdego, kto może nie mieć kopii zapasowej;)
Michał Polowka,
Cóż, jeśli nie masz kopii zapasowej zrujnowanego obiektu, musisz zacząć od zera. Na szczęście OP ma jeden.
Dmitry Grigoryev
25

Powinieneś być w stanie uruchomić się w trybie odzyskiwania , który pozwoli ci wpaść do powłoki roota, a następnie rozwiązać problem. Pozwala to uniknąć konieczności pobierania dodatkowego systemu operacyjnego.

Instrukcje zaczerpnięte z wiki Ubuntu:

  1. Włącz komputer.
  2. Poczekaj, aż system BIOS zakończy ładowanie lub prawie się zakończy. (W tym czasie prawdopodobnie zobaczysz logo producenta komputera).
  3. Szybko naciśnij i przytrzymaj klawisz Shift, co spowoduje wyświetlenie menu GNU GRUB. (Jeśli widzisz logo Ubuntu, przegapiłeś punkt, w którym możesz wejść do menu GRUB.)

  4. Wybierz wiersz rozpoczynający się od „ Advanced options”.

  5. Wybierz linię kończącą się na „ (recovery mode)”, prawdopodobnie drugą linię, coś w stylu:

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

  6. Naciśnij Return, a urządzenie rozpocznie proces rozruchu.

  7. Po kilku chwilach stacja robocza powinna wyświetlić menu z wieloma opcjami. Jedną z opcji (może być konieczne przewinięcie w dół do dołu listy) będzie „ Drop to root shell prompt”. Naciśnij Return z podświetloną opcją.

  8. Partycja root jest montowana tylko do odczytu. Aby zamontować go do odczytu / zapisu, wprowadź polecenie

    mount -o remount,rw /

  9. Jeśli masz / home, / boot, / tmp lub inny punkt montowania na osobnej partycji, możesz zamontować je za pomocą polecenia

    mount --all

    (Należy to zrobić po kroku 8, aby można było zapisać /etc/mtab).

Jeśli nie masz opcji odzyskiwania, możesz nacisnąć eGRUB, aby edytować standardową opcję rozruchu i dodać recoveryna końcu linuxlinii (domyślnie przedostatnia linia, tuż przed nią initrd). Następnie naciśnij, F10aby go uruchomić.

Kok
źródło
9

Użyj płyty CD na żywo

  1. Uruchom przy użyciu CD / DVD na żywo. Jeśli nie masz ISO i nie chcesz pobierać dużego ISO, pobierz Tiny Core - 10 MB.
  2. W wierszu polecenia, w sudo mount /dev/sdXn /mntktórym sdXnznajduje się twoja partycja Ubuntu.
  3. Wpisz cd /mnt/home/<your user name>/Downloads.
  4. Teraz przywróć swój .bashrcnowy .bashrcza pomocą tego polecenia mv ../.bashrc ../.bashrc_old && cp ./.bashrc ../.
  5. Teraz uruchom ponownie system i powinieneś już iść.
Ceda EI
źródło
8

Włóż dysk DVD lub USB użyty do zainstalowania Ubuntu i uruchom go z niego. Wybierz „wypróbuj Ubuntu” i poczekaj, aż zwróci pulpit.

Sprawdź dyski w laucherach pod kątem tego, który ma twój dom. Kliknięcie powoduje zamontowanie go w / media /

Otwórz terminal i cdumieść go w swoich plikach do pobrania i skopiuj plik do domu. To byłoby:

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

i uruchom ponownie bez DVD / USB.

Rinzwind
źródło
Dostaję coś w rodzaju cp: nie mogę utworzyć zwykłego pliku „../bashrc”: Odmowa dostępu. :(
crypto
ah użyj sudo! :)
Rinzwind
To było kiepskie pytanie. Przepraszam. Lekcja wyciągnięta! I jak zasugerowałeś, przyjmuję odpowiedź Michała. Mam nadzieję, że jest w porządku
krypto
nie ma problemu, i tak mam 200> :)
Rinzwind
6

Połącz przez SFTP

Połącz się z systemem za pomocą SFTP, albo z wbudowanego sftppolecenia innego komputera z systemem Linux, albo z komputera z WinSCP lub FileZilla i napraw plik. .bashrcPlik nie jest zazwyczaj zaangażowane w SFTP (jest to możliwe, aby dostosować swój authorized_keysplik, aby to zaangażowany, ale wątpliwe, że zrobiłeś).

Monty Harder
źródło
Lub, podobnie, połącz się z ssh dash(lub dowolną inną powłoką inną niż bash).
Peter Taylor
5

Sugeruję, aby zawsze mieć DWA konta sudo. Są to konta, które mogą działać jako root w PRAWIE we wszystkich przypadkach, jeśli podasz normalne hasło do tego konta. Tymczasowo możesz działać jako root.

Jeśli zepsujesz jedno konto, możesz to naprawić za pomocą drugiego.

Ale może istnieć możliwość REGULARNEGO konta i „su zepsute-sudo-nazwa-konta”, jeśli znasz hasło. Będziesz wtedy działał jak zepsute konto i będziesz mógł „sudo cp backup .bashrc” po „dc / home / screwed-up-account” I teraz jest to możliwe bez zepsucia go, ale nie jestem pewien w konkretnym przypadku.

Dennis
źródło
4

Jak powiedziało kilka osób, najlepszym rozwiązaniem jest więcej niż jedno konto „sudo”. Po drugie, jeśli robisz wiele modów do pliku .bashrc, upuść kopię na kartę pamięci, zanim zaczniesz majsterkować, to nie musisz zaczynać od nowa z pustym miejscem, możesz wrócić do ostatniego znanego dobra. plik bashrc bez utraty wszystkich poprzednich majstrowań. Pierwszą rzeczą, jaką zrobiłem, majstrując przy moim .bashrc lub .vimrc lub. . . każdy plik konfiguracyjny jest kopiowany na moją poręczną kartę pamięci przed rozpoczęciem. Jestem człowiekiem, mam dzieci, rozpraszają mnie lol. Mam kartę pamięci pełną plików konfiguracyjnych dla bash, vim, conky, openbox, tint2 i innych.

skytale
źródło
Inną sztuczką jest użycie RCS do historii wersji plików konfiguracyjnych (takich jak bashrc, vimrc lub cokolwiek w / etc).
ChuckCottrill
0

Zaloguj się zamiast tego jako root i użyj kopii zapasowej, aby naprawić plik .bashrc, tak jak w innych odpowiedziach.

Dla optymalnego bezpieczeństwa nie loguj się do normalnego środowiska X Windows. Zamiast tego naciśnij, control-alt-F2aby przejść do konsoli tekstowej i zaloguj się. Po naprawieniu problemu, uruchom, exitaby wylogować się z powłoki roota, a następnie naciśnij, control-alt-F7aby wrócić do X Windows. (Zauważ, że X Windows może być na tty1 zamiast tty7, więc może być konieczne użycie control-alt-F1zamiast niego. Tty6 lub tty7 są historycznie tradycyjne, ale niektóre dystrybucje przenoszą go na tty1, ponieważ ludzie rzadko używają ttys są bardziej. Ubuntu może, ale nie musi, mieć to zrobić. Eksperymentuj, aby dowiedzieć się, w jaki sposób skonfigurowano system).

db48x
źródło
Konto root jest wyłączone w Ubuntu, więc jeśli go nie włączysz, nie będzie możliwości zalogowania się jako root.
Seth
1
@Seth Jeśli masz dostęp do bootloadera, możesz uruchomić system w trybie odzyskiwania i uzyskać tam root root.
Bob
@ Bob prawda, ale nie tak mówi odpowiedź. To powinno zadziałać.
Seth
1
@Seth Tak, już dodałem własną odpowiedź z bardziej szczegółowymi informacjami. Och, btw @ db48x, normalnie X11 działa na tty7(Ctrl + Alt + F7), nie tty1.
Bob
Nie wiedziałem, że wyłączyli konto root. Może mimo wszystko nie zaktualizuję mojej jednej maszyny Ubuntu ...
db48x 27.10.16
0

Za każdym razem, gdy włączałem komputer po tym incydencie, witano mnie zwykłym ekranem logowania do ubuntu, z wyjątkiem tego, że po wprowadzeniu hasła ekran migał przez sekundę, a ekran logowania pojawiał się ponownie.

Nie wiem czy na tym polegał twój problem, ale zdarzyło mi się to raz. Jeśli którykolwiek z plików załadowanych do powłoki-start (.bashrc, .bash_profile, .profile) wyśle ​​tekst na standardowe wyjście, nie będzie można zalogować się graficznie. Nadal możesz przejść do tty (ctrl + alt + f1), zalogować się stamtąd, a następnie odzyskać plik.

Scimonster
źródło