Modifikasi .bashrc dan sekarang saya tidak bisa masuk walaupun memasukkan kata sandi dengan benar

23

Saya mengacaukan bigtime dengan file bashrc. Saya menginstal Gurobi dan saya harus mengatur variabel path dalam file bashrc. Jadi, saya mengganti semua teks dalam bashrc dengan variabel path dan menyimpan file bashrc. Dan saya juga memastikan, jika sesuatu yang buruk terjadi, saya memiliki cadangan file ini. File cadangan asli yang tidak dimodifikasi ada di folder Unduhan.

Sekarang ketika saya me-restart sistem, saya tidak bisa login meskipun memberikan kata sandi yang tepat. Karena itu, saya ingin meminta bantuan Anda. Perbaikan seperti apa yang dimungkinkan mengingat fakta bahwa saya masih memiliki file bashrc di direktori Downloads

crypto
sumber
1
gunakan penyelamatan grub atau sesi langsung untuk menyalinnya dari unduhan yang dir di atas yang salah.
Rinzwind
bisakah Anda menjelaskan saran Anda? Saya masih pemula ketika datang ke ubuntu
crypto
1
Sekarang Anda membuat saya bertanya-tanya apa yang terjadi pada opsi gagal-aman yang dulu ada di layar masuk untuk skenario semacam ini.
kasperd
3
Mengapa tidak masuk sebagai root dan perbaiki file .bashrc pengguna Anda?
jamesqf
3
Cara klasik adalah boot ke mode pengguna tunggal. Anda harus menghentikan boot loader dan menambahkan "tunggal" ke baris yang menentukan parameter kernel dan boot Anda, seperti yang dijelaskan misalnya di sini .
Peter - Pasang kembali Monica

Jawaban:

38

Gunakan LiveUSB atau LiveDVD.

Boot ke sesi langsung, pasang hard drive Anda, dan salin .bashrcfile asli Anda di atas yang dimodifikasi.

Kemudian Anda dapat reboot dengan aman (mengeluarkan USB atau DVD).

Info umum: Jika Anda tidak memiliki cadangan .bashrcfile, Anda dapat menggunakannya dari liveUSB / DVD.

Michal Polovka
sumber
Saya berasumsi inti dari membuat cadangan adalah ketika file Anda berbeda dari yang default dari CD instalasi.
Dmitry Grigoryev
2
Ya mereka, tetapi ada juga kemungkinan, bahwa Anda merusak sesuatu dan tidak tahu persis apa, atau Anda tidak memiliki cadangan. Itu sebabnya saya menambahkan untuk menanggapi pertanyaan OPs juga info umum untuk siapa pun yang mungkin tidak memiliki cadangan;)
Michal Polovka
Ya, jika Anda tidak memiliki cadangan dari sesuatu yang telah Anda hancurkan, Anda harus mulai dari awal. Untungnya, OP memilikinya.
Dmitry Grigoryev
25

Anda harus bisa boot ke mode pemulihan , yang akan membiarkan Anda jatuh ke shell root dan kemudian memperbaiki masalah dari sana. Ini menghindari keharusan mengunduh OS tambahan.

Instruksi diambil dari wiki Ubuntu:

  1. Nyalakan komputer Anda.
  2. Tunggu hingga BIOS selesai memuat, atau hampir selesai. (Selama waktu ini Anda mungkin akan melihat logo pabrik komputer Anda.)
  3. Tekan dan tahan tombol Shift dengan cepat, yang akan memunculkan menu GNU GRUB. (Jika Anda melihat logo Ubuntu, Anda melewatkan titik di mana Anda dapat masuk ke menu GRUB.)

  4. Pilih garis yang dimulai dengan " Advanced options".

  5. Pilih baris yang diakhiri dengan " (recovery mode)", mungkin baris kedua, seperti:

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

  6. Tekan Return dan mesin Anda akan memulai proses booting.

  7. Setelah beberapa saat, stasiun kerja Anda akan menampilkan menu dengan sejumlah opsi. Salah satu opsi (Anda mungkin perlu menggulir ke bawah ke daftar paling bawah) adalah " Drop to root shell prompt". Tekan Kembali dengan opsi ini disorot.

  8. Partisi root di-mount hanya-baca. Untuk me-mount baca / tulis, masukkan perintah

    mount -o remount,rw /

  9. Jika Anda memiliki / home, / boot, / tmp, atau titik mount lainnya di partisi yang terpisah, Anda dapat memasangnya dengan perintah

    mount --all

    (Ini harus dilakukan mengikuti langkah 8 agar /etc/mtabdapat ditulis.)

Jika Anda tidak memiliki opsi pemulihan, Anda dapat menekan edi GRUB untuk mengedit opsi boot standar dan menambahkan recoverydi akhir linuxbaris (baris kedua-terakhir secara default, tepat sebelum initrd). Kemudian tekan F10untuk menjalankannya.

Bob
sumber
9

Gunakan CD langsung

  1. Boot menggunakan live CD / DVD. Jika Anda tidak memiliki iso dan tidak ingin mengunduh iso besar, unduh Tiny Core - 10MB.
  2. Pada tipe baris perintah di sudo mount /dev/sdXn /mntmana sdXnpartisi Ubuntu Anda.
  3. Jenis cd /mnt/home/<your user name>/Downloads.
  4. Sekarang kembalikan Anda .bashrcsebagai yang baru .bashrcmenggunakan perintah ini mv ../.bashrc ../.bashrc_old && cp ./.bashrc ../.
  5. Sekarang restart ke sistem Anda dan Anda harus baik-baik saja.
Ceda EI
sumber
8

Masukkan dvd atau USB yang Anda gunakan untuk menginstal Ubuntu dan boot darinya. Pilih "coba Ubuntu" dan tunggu sampai mengembalikan desktop.

Periksa disk di lauchers untuk disk yang memiliki rumah Anda. Mengkliknya akan memasangnya ke / media /

Buka terminal dan cdmasuk ke Unduhan Anda dan salin file ke rumah Anda. Itu akan menjadi:

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

dan reboot tanpa dvd / USB.

Rinzwind
sumber
Saya mendapatkan sesuatu seperti cp: tidak dapat membuat file biasa '../bashrc': Izin ditolak. :(
crypto
ah gunakan sudo! :)
Rinzwind
Itu pertanyaan yang lemah. Maaf. Pelajaran yang dipetik! Dan seperti yang Anda sarankan, saya menerima jawaban Michal. Semoga tidak apa
crypto
tidak masalah, saya di 200 lagian> :)
Rinzwind
6

Terhubung melalui SFTP

Sambungkan ke sistem melalui SFTP, baik dari sftpperintah bawaan mesin Linux lain atau PC dengan WinSCP atau FileZilla, dan perbaiki file tersebut. The .bashrcfile tidak biasanya terlibat dalam SFTP (itu mungkin untuk men-tweak Anda authorized_keysberkas untuk membuatnya terlibat, tetapi meragukan Anda selesai melakukannya).

Monty Harder
sumber
Atau, juga terhubung dengan ssh dash(atau shell non-bash lainnya).
Peter Taylor
5

Saya sarankan selalu memiliki DUA sudo akun. Ini adalah akun yang dapat bertindak sebagai root di HAMPIR semua kasus, jika Anda memberikan kata sandi normal untuk akun itu. Anda sementara bisa bertindak sebagai root.

Jika Anda mengacaukan satu akun, Anda dapat memperbaikinya dengan yang lain.

Tapi, MUNGKIN dimungkinkan berada di akun REGULER dan 'su screwed-sudo-account-name' jika Anda tahu kata sandinya. Maka Anda akan bertindak sebagai akun yang kacau dan dapat 'sudo cp backup .bashrc' setelah 'dc / home / screwed-up-account' Saya sekarang dapat melakukannya tanpa dibongkar, tetapi tidak yakin dalam kasus khusus Anda.

Dennis
sumber
4

Seperti yang dikatakan oleh beberapa orang, lebih dari satu akun "sudo" adalah cara terbaik untuk melakukannya. Kedua, jika Anda melakukan banyak mod pada file .bashrc Anda, letakkan salinan di memory stick sebelum Anda mulai bermain-main, maka Anda tidak harus memulai dari yang kosong, Anda dapat kembali ke barang terakhir yang diketahui. file bashrc tanpa kehilangan semua mengutak-atik Anda sebelumnya. Hal pertama yang saya lakukan ketika bermain-main dengan .bashrc atau .vimrc atau. . . file konfigurasi apa pun buat salinan ke memory stick saya yang praktis sebelum saya mulai. Saya manusia. Saya punya anak. Saya terganggu lol. Saya memiliki memory stick yang penuh dengan file konfigurasi untuk bash, vim, conky, openbox, tint2 dan banyak lagi.

skytale
sumber
Trik lain adalah dengan menggunakan RCS untuk versi riwayat file konfigurasi (seperti bashrc, vimrc, atau apa pun di / etc).
ChuckCottrill
0

Masuk sebagai root, dan gunakan cadangan Anda untuk memperbaiki .bashrc Anda seperti pada jawaban lainnya.

Untuk keamanan optimal, jangan masuk ke lingkungan X Windows normal. Sebaliknya, tekan control-alt-F2untuk pergi ke konsol teks dan masuk. Setelah Anda menyelesaikan masalah, jalankan exituntuk keluar dari shell root, lalu tekan control-alt-F7untuk kembali ke X Windows. (Perhatikan bahwa X Windows mungkin menggunakan tty1 dan bukan tty7, jadi Anda mungkin perlu menggunakan control-alt-F1. Tty6 atau tty7 secara tradisional tradisional, tetapi beberapa distro memindahkannya ke tty1 karena orang jarang menggunakan tty1 lebih. Ubuntu mungkin atau mungkin tidak memiliki melakukannya. Eksperimen untuk mengetahui ke mana sistem Anda dikonfigurasi.)

db48x
sumber
Akun root dinonaktifkan di Ubuntu jadi kecuali Anda mengaktifkannya, tidak ada cara untuk login sebagai root.
Seth
1
@Seth Jika Anda memiliki akses ke bootloader, Anda dapat mem-boot ke mode pemulihan dan mendapatkan shell root di sana.
Bob
@ Bob benar, tapi bukan itu yang dikatakan jawabannya. Itu seharusnya bekerja.
Seth
1
@Set Ya, saya sudah menambahkan jawaban saya sendiri dengan lebih detail di sana. Oh, btw @ db48x, biasanya X11 berjalan pada tty7(Ctrl + Alt + F7), tidak tty1.
Bob
Aduh, saya tidak tahu bahwa mereka menonaktifkan akun root. Mungkin saya tidak akan memutakhirkan satu mesin Ubuntu saya ...
db48x
0

Setiap kali saya menyalakan PC setelah kejadian ini, saya disambut dengan layar login ubuntu yang biasa kecuali bahwa setelah memasukkan kata sandi, layar berkedip selama sedetik dan layar login muncul kembali.

Saya tidak tahu apakah ini masalah Anda, tetapi ini pernah terjadi pada saya. Jika ada file yang dimuat di shell-start (.bashrc, .bash_profile, .profile) menampilkan teks ke stdout, Anda tidak akan dapat login secara grafis. Anda masih bisa masuk ke tty (ctrl + alt + f1), login dari sana, dan kemudian memulihkan file Anda.

Scimonster
sumber