Случайно модифицированный .bashrc и теперь я не могу войти, несмотря на то, что правильно ввел пароль

23

Я запутался с файлом bashrc. Я устанавливал Gurobi, и я должен был установить переменные пути в файле bashrc. Итак, я заменил весь текст в bashrc переменными пути и сохранил файл bashrc. И я также удостоверился, что, если что-то плохое случится, у меня есть резервная копия этого файла. Исходный неизмененный файл резервной копии находится в папке «Загрузки».

Теперь, когда я перезапустил систему, я не смог войти, несмотря на предоставление правильного пароля. Поэтому я хотел бы попросить вас о помощи. Какие исправления возможны, учитывая тот факт, что у меня все еще есть файл bashrc в каталоге Downloads

крипто-
источник
1
используйте grub rescue или сеанс в реальном времени, чтобы скопировать его из каталога загрузок поверх неправильного.
Rinzwind
не могли бы вы разработать ваше предложение? Я все еще начинающий, когда дело доходит до Ubuntu
crypto
1
Теперь вы меня удивляете, что случилось с отказоустойчивой опцией, которая раньше существовала на экране входа в систему для такого сценария.
kasperd
3
Почему бы не войти в систему как пользователь root и исправить файл .bashrc вашего пользователя?
jamesqf
3
Классическим способом является загрузка в однопользовательском режиме. Вы должны прервать загрузчик и добавить «single» в строку, указав ваше ядро ​​и параметры загрузки, как описано, например, здесь .
Питер - Восстановить Монику

Ответы:

38

Используйте LiveUSB или LiveDVD.

Загрузитесь в режиме реального времени, смонтируйте жесткий диск и скопируйте исходный .bashrcфайл поверх измененного.

После этого вы можете безопасно перезагрузиться (извлечь USB или DVD).

Общая информация: Если у вас нет резервной копии .bashrcфайла, вы можете использовать ее с liveUSB / DVD.

Михал Половка
источник
Я предполагаю, что весь смысл создания резервных копий заключается в том, что ваши файлы отличаются от файлов по умолчанию с установочного компакт-диска.
Дмитрий Григорьев
2
Да, это так, но также есть вероятность, что вы что-то испортили и не знаете, что именно, или у вас нет резервной копии. Вот почему я добавил в ответ на вопрос ОП также общую информацию для тех, у кого нет резервной копии;)
Михал Половка,
Ну да, если у вас нет резервной копии того, что вы испортили, вам придется начинать с нуля. К счастью, у ОП есть.
Дмитрий Григорьев
25

Вы должны быть в состоянии загрузиться в режиме восстановления , который позволит вам зайти в корневую оболочку, а затем исправить проблему оттуда. Это позволяет избежать необходимости загружать дополнительную ОС.

Инструкции взяты из вики Ubuntu:

  1. Включи свой компьютер.
  2. Дождитесь окончания загрузки BIOS или его завершения. (В это время вы, вероятно, увидите логотип производителя вашего компьютера.)
  3. Быстро нажмите и удерживайте клавишу Shift, чтобы вызвать меню GNU GRUB. (Если вы видите логотип Ubuntu, вы упустили момент, когда вы можете войти в меню GRUB.)

  4. Выберите строку, которая начинается с " Advanced options".

  5. Выберите строку, оканчивающуюся на « (recovery mode)», вероятно, на второй строке, что-то вроде:

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

  6. Нажмите Return, и ваша машина начнет процесс загрузки.

  7. Через несколько секунд ваша рабочая станция должна отобразить меню с рядом опций. Один из вариантов (вам может понадобиться прокрутить вниз до конца списка) будет " Drop to root shell prompt". Нажмите Return, когда эта опция выделена.

  8. Корневой раздел монтируется только для чтения. Чтобы смонтировать его на чтение / запись, введите команду

    mount -o remount,rw /

  9. Если у вас есть / home, / boot, / tmp или любая другая точка монтирования в отдельном разделе, вы можете смонтировать их с помощью команды

    mount --all

    (Это должно быть сделано после шага 8, чтобы его /etc/mtabможно было записать.)

Если у вас нет опции восстановления, вы можете нажать eв GRUB, чтобы отредактировать стандартную опцию загрузки и добавить recoveryв конце linuxстроки (вторая-последняя строка по умолчанию, непосредственно перед initrd). Затем нажмите, F10чтобы запустить его.

боб
источник
9

Используйте живой CD

  1. Загрузитесь с живого CD / DVD. Если у вас нет iso и вы не хотите загружать большие iso, скачайте Tiny Core - 10MB.
  2. В командной строке введите, sudo mount /dev/sdXn /mntгде sdXnнаходится ваш раздел Ubuntu.
  3. Тип cd /mnt/home/<your user name>/Downloads.
  4. Теперь восстановите ваш .bashrcновый, .bashrcиспользуя эту команду mv ../.bashrc ../.bashrc_old && cp ./.bashrc ../.
  5. Теперь перезапустите вашу систему, и вы должны быть готовы к работе.
Ceda EI
источник
8

Вставьте DVD или USB, который вы использовали для установки Ubuntu, и загрузитесь с него. Выберите «попробовать Ubuntu» и подождите, пока он вернется на рабочий стол.

Проверьте диски в лаучарах на тот, который имеет ваш дом. Нажатие на него монтирует его в / media /

Откройте терминал и войдите cdв него в разделе «Загрузки» и скопируйте файл в свой дом. Это было бы:

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

и перезагрузите компьютер без DVD / USB.

Rinzwind
источник
Я получаю что-то вроде cp: не могу создать обычный файл "../bashrc": разрешение отклонено. :(
crypto
ах использовать sudo! :)
Rinzwind
Это был неудачный вопрос. Сожалею. Урок выучен! И, как вы предложили, я принимаю ответ Михала. Надеюсь, что все в порядке
crypto
не проблема, я в любом случае на 200> :)
Rinzwind
6

Подключиться через SFTP

Подключитесь к системе через SFTP, используя встроенную sftpкоманду другого компьютера с Linux или ПК с WinSCP или FileZilla, и восстановите файл. .bashrcФайл обычно не участвует в SFTP (это можно настроить свой authorized_keysфайл , чтобы сделать это участие, но сомнительно , что вы сделали это).

Монти Хардер
источник
Или, аналогичным образом, соединиться с ssh dash(или с любой другой оболочкой не-bash).
Питер Тейлор
5

Я предлагаю всегда иметь ДВА учетных записи sudo. Это учетные записи, которые могут выступать в роли пользователя root почти во всех случаях, если вы зададите обычный пароль для этой учетной записи. Вы временно получаете права root.

Если вы испортите одну учетную запись, вы можете исправить ее с другой.

Но, МОЖЕТ быть возможно быть в РЕГУЛЯРНОЙ учетной записи и 'su screw-up-sudo-account-name', если вы знаете пароль. Тогда вы будете действовать как испорченная учетная запись и можете 'sudo cp backup .bashrc' после 'dc / home / screwed-up-account'. Теперь это возможно без обмана, но не уверен в вашем конкретном случае.

Деннис
источник
4

По словам некоторых людей, лучше всего использовать одну учетную запись sudo. Во-вторых, если вы сделаете много модов для своего файла .bashrc, поместите копию на карту памяти, прежде чем начинать возиться, тогда вам не нужно начинать заново с пробела, вы можете вернуться к последнему известному благу. Bashrc файл, не теряя все свои предыдущие работы. Первое, что я делаю, когда возиться с моим .bashrc или .vimrc или. , , любой файл конфигурации - это скопировать на мою удобную карту памяти, прежде чем я начну. Я человек, у меня есть дети, я отвлекаюсь LOL. У меня есть карта памяти, полная конфигурационных файлов для bash, vim, conky, openbox, tint2 и других.

skytale
источник
Другая хитрость заключается в использовании RCS для истории версий файлов конфигурации (таких как bashrc, vimrc или что-нибудь в / etc).
ChuckCottrill
0

Вместо этого войдите в систему как пользователь root и используйте свою резервную копию, чтобы исправить ваш .bashrc, как и в других ответах.

Для оптимальной безопасности не входите в обычную среду X Windows. Вместо этого нажмите, control-alt-F2чтобы перейти в текстовую консоль и войти в систему. Как только вы исправите проблему, запустите, exitчтобы выйти из корневой оболочки, а затем нажмите, control-alt-F7чтобы вернуться к X Windows. (Обратите внимание, что X Windows может быть на tty1 вместо tty7, поэтому вам, возможно, придется использовать control-alt-F1вместо этого. Tty6 или tty7 исторически традиционны, но некоторые дистрибутивы переносят его на tty1, потому что люди редко используют ttys чаще. Ubuntu может иметь или не иметь Сделайте это. Поэкспериментируйте, чтобы выяснить, как настроена ваша система.)

db48x
источник
Учетная запись root отключена в Ubuntu, поэтому, если вы ее не включите, вы не сможете войти в систему как root.
Сет
1
@Seth Если у вас есть доступ к загрузчику, вы можете загрузиться в режиме восстановления и получить там корневую оболочку.
Боб
@ Боб правда, но это не то, что говорит ответ. Это должно работать, хотя.
Сет
1
@ Да, я уже добавил свой собственный ответ с более подробной информацией. О, кстати @ db48x, обычно X11 работает tty7(Ctrl + Alt + F7), нет tty1.
Боб
Ой, я не знал, что они отключили учетную запись root. Может быть, я не стану обновлять свою единственную машину с Ubuntu ...
db48x
0

Каждый раз, когда я включал компьютер после этого инцидента, меня приветствовал обычный экран входа в систему Ubuntu, за исключением того, что после ввода пароля экран мигал на секунду, и экран входа снова появлялся.

Я не знаю, была ли это ваша проблема, но это случилось со мной однажды. Если какой-либо из файлов, загруженных при запуске оболочки (.bashrc, .bash_profile, .profile), выводит текст на стандартный вывод, вы не сможете войти в систему графически. Вы все еще можете войти в tty (ctrl + alt + f1), авторизоваться оттуда и затем восстановить свой файл.

Scimonster
источник