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

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

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

1
задан 28 October 2016 в 04:29

8 ответов

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

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

Включите компьютер. Подождите, пока BIOS завершит загрузку или почти закончит. (В течение этого времени вы, вероятно, увидите логотип своего производителя компьютера.) Быстро нажмите и удерживайте клавишу Shift, которая вызовет меню GNU GRUB. (Если вы видите логотип Ubuntu, вы пропустили точку, в которой вы можете войти в меню GRUB.) Выберите строку, которая начинается с «Advanced options». Выберите строку, заканчивающуюся на «(recovery mode)», возможно, вторая строка, например: Ubuntu GNU/Linux, with Linux 3.8.0-26-generic (recovery mode) Нажмите «Назад», и ваш компьютер начнет процесс загрузки. Через несколько секунд ваша рабочая станция должна отобразить меню с несколькими параметрами. Один из вариантов (возможно, вам потребуется прокрутить вниз до нижней части списка) будет «Drop to root shell prompt». Нажмите «Назад», выделив эту опцию. Корневой раздел монтируется только для чтения. Чтобы подключить его к чтению / записи, введите команду mount -o remount,rw /. Если у вас есть / home, / boot, / tmp или любая другая точка монтирования на отдельном разделе, вы можете установить их с помощью команды mount --all (это необходимо сделать следующий шаг 8, чтобы /etc/mtab был доступен для записи.)

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

24
ответ дан 23 May 2018 в 04:48

Используйте live CD

Загрузите Live CD / DVD. Если у вас нет iso и вы не хотите загружать большое iso, загрузите Tiny Core - 10MB. В командной строке введите sudo mount /dev/sdXn /mnt, где sdXn - ваш раздел Ubuntu. Введите cd /mnt/home/<your user name>/Downloads. Теперь восстановите свой .bashrc как новый .bashrc, используя эту команду mv ../.bashrc ../.bashrc_old && cp ./.bashrc ../. Теперь перезагрузитесь в вашу систему, и вам должно быть хорошо идти.
9
ответ дан 23 May 2018 в 04:48

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

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

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

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

и перезагрузка без dvd / USB.

8
ответ дан 23 May 2018 в 04:48
  • 1
    Я получаю что-то вроде cp: не могу создать обычный файл '../bashrc': Permission denied. :( – crypto 26 October 2016 в 20:49
  • 2
    ah использование sudo! :) – Rinzwind 26 October 2016 в 20:51
  • 3
    Это был хромой вопрос. Сожалею. Урок выучен! И, как вы предположили, я принимаю ответ Михала. Надеюсь, что все в порядке – crypto 26 October 2016 в 20:52
  • 4
    не проблема, я на 200 в любом случае & gt; :) – Rinzwind 26 October 2016 в 20:55

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

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

6
ответ дан 23 May 2018 в 04:48
  • 1
    Или, аналогично, подключитесь к ssh dash (или к любой другой оболочке без bash). – Peter Taylor 28 October 2016 в 21:25

Я предлагаю всегда иметь два аккаунта sudo. Это учетные записи, которые могут выполнять роль root в ПОЧТИ ВСЕХ случаях, если вы указали обычный пароль для этой учетной записи. Вы временно можете действовать как root.

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

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

5
ответ дан 23 May 2018 в 04:48

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

4
ответ дан 23 May 2018 в 04:48
  • 1
    Другой трюк - использовать RCS для истории версий файлов конфигурации (таких как bashrc, vimrc или что-либо в / etc). – ChuckCottrill 29 October 2016 в 03:56

Войдите в систему под именем 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 может или возможно, не сделали этого. Эксперимент, чтобы узнать, в какой форме настроена ваша система.)

0
ответ дан 23 May 2018 в 04:48
  • 1
    Учетная запись root отключена в Ubuntu, поэтому, если вы ее не активировали, нет способа войти в систему как пользователь root. – Seth♦ 27 October 2016 в 02:18
  • 2
    @Seth Если у вас есть доступ к загрузчику, вы можете загрузиться в режим восстановления и получить там корневую оболочку. – Bob 27 October 2016 в 05:34
  • 3
    @Bob true, но это не то, что ответ отвечает. Это должно сработать. – Seth♦ 27 October 2016 в 05:41
  • 4
    @Seth Yea, я уже добавил свой собственный ответ с более подробной информацией. Ах, btw @ db48x, обычно X11 работает на tty7 (Ctrl + Alt + F7), а не tty1. – Bob 27 October 2016 в 07:03
  • 5
    Ой, я не знал, что они отключили учетную запись root. Возможно, я не буду обновлять мою машину Ubuntu в конце концов ... – db48x 27 October 2016 в 19:58
Каждый раз, когда я включал ПК после этого инцидента, меня приветствовал обычный экран входа в ubuntu, за исключением того, что после ввода пароля экран мигнул на секунду, и экран входа в систему снова появился.

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

0
ответ дан 23 May 2018 в 04:48

Другие вопросы по тегам:

Похожие вопросы: