Mengubah file sudoers dan tidak dapat membukanya lagi; tidak dapat membuka file apa pun menggunakan root

8

Saya mengubah pengaturan menggunakan file sudoers

sudo visudo 

dan mengacaukannya. Sekarang ketika saya mencoba melakukannya lagi atau membuka file apa pun menggunakan sudo, saya tidak bisa membukanya lagi dan saya mendapatkan pesan kesalahan ini:

>>> file sudoers: kesalahan sintaks, baris 7 

Apa sekarang?

Apakah ada cara untuk keluar dari masalah ini (untuk mengembalikan pengaturan), atau apakah saya perlu menginstal salinan linux baru?

Alasan saya mendapatkan semua ini adalah saya menekan "Q" sementara itu mengatakan ada kesalahan, yang sangat bodoh bagi saya.

Terima kasih.

EDIT

File sudoers saya tidak berbeda dengan file sudoers normal. Saya baru saja menambahkan timestamp_timeout = 0 baris dalam file itu dan semua masalah ini muncul. Saya melakukan apa yang disarankan James dan bahkan menghapus baris itu (timestamp_timeout = 0). Saya mengubah izin file ke 0440 yang diminta, dan kemudian boot secara normal. Lalu, saya mendapatkan pesan kesalahan yang sama

sudoers file: syntax error, line 7 
sudo: parse error in /etc/sudoers near line 7
seperti di atas.

Apa yang harus saya lakukan sekarang ??

EDIT 2 Dipecahkan

Inilah yang saya lakukan:

  1. Boot menggunakan livecd
  2. Hapus file sudoers lama
  3. Membuat file sudoers baru dan menyalin semua ke file itu yaitu pengaturan konfigurasi minimum, yang untungnya saya simpan di file lain
  4. Izin file diubah ke 0440
  5. Reboot lagi secara normal dari harddisk

Hore !!

Karlo
sumber
Anda dapat menempelkan konten file sudoers Anda ke www.pastebin.com dan biarkan kami melihatnya, mungkin cara tercepat.
Andrioid
Saya akan mencari # yang hilang pada komentar, titik dua yang hilang, tanda sama dengan, garis miring terbalik lanjutan, dll.
Dijeda sampai pemberitahuan lebih lanjut.

Jawaban:

8

Dengan asumsi Anda tidak memberikan kata sandi kepada pengguna root, maka cara termudah untuk memperbaikinya adalah dengan live cd seperti Knoppix . Boot CD. Pasang disc lokal, edit file, unmount disc dan reboot.

James
sumber
6

Sederhana, boot komputer dalam ' mode pengguna tunggal ' dengan melakukan langkah-langkah berikut:

  1. Mulai ulang
  2. Ketika Grub dimulai, tekan ESC (atau melarikan diri)
  3. Tekan 'e' untuk mengedit garis saat ini
  4. Tambahkan 'tunggal' ke akhir baris yang berisi 'linux'
  5. Boot (tekan b)

Ini akan memulai komputer dengan hanya satu pengguna, root. Dari sana ikuti langkah-langkah ini:

  1. / usr / bin / vim / etc / sudoers (atau gunakan nano, mungkin lebih mudah bagi Anda) untuk memperbaiki masalah
  2. Jika Anda tidak yakin dengan masalahnya, coba salin contoh sudoers yang disertakan dari "/ usr / share / doc / sudo / example" (bervariasi) dan tentu saja tambahkan pengguna Anda di sana.
  3. Simpan file, keluar dari Vim
  4. Reboot, selamat menikmati!
Andrioid
sumber
Saya bertanya-tanya tentang kapan ia meminta kata sandi sebelum memberikan shell pengguna tunggal?
James
Metode ini tidak berfungsi untuk semua distro. Karena ini adalah pintu belakang yang terkenal, beberapa distro memaksa login sebelum Anda mendapatkan prompt root. Kedengarannya seperti itu untukmu, James.
Telemakus
Tidak tahu distro mulai melakukan itu, selalu bekerja untuk saya di masa lalu Slackware yang bagus
Andrioid
Anda harus merekomendasikan penggunaan visudo over vim: en.wikipedia.org/wiki/Visudo
3

Gagasan James untuk menggunakan live cd (dengan asumsi akun root tidak diaktifkan) adalah ide yang bagus. Saya akan menambahkan beberapa poin.

  • Pertama, Anda mungkin beruntung dan cadangan file / etc / sudoers disimpan secara otomatis saat Anda mengeditnya. Periksa / etc untuk file yang terlihat seperti ini sudoers~ (Anda dapat cdke direktori itu dan berjalan ls -A tanpa hak akses root, bahkan jika Anda tidak dapat membaca atau mengedit file sebagai pengguna biasa). Beberapa editor akan membuat cadangan seperti itu jika sama sekali mungkin, jadi Anda mungkin memilikinya tanpa membuatnya secara eksplisit.
  • Kedua, jika Anda tidak tahu cara mengedit file, Anda dapat mempertimbangkan mempostingnya (atau area di sekitar baris 7) di sini atau di tempat lain. Meskipun file itu sendiri ada hubungannya dengan keamanan, tidak ada kata sandi di dalamnya, jadi tidak ada salahnya segera mempostingnya.
  • Terakhir, perhatikan bahwa pesan kesalahan seperti yang Anda lihat tidak berarti bahwa masalah itu sendiri secara harfiah ada di jalur 7. Kesalahan itu mungkin ada di jalur 4, tetapi hanya tersandung, sehingga bisa dikatakan, di jalur 7.
Telemakus
sumber
0

Coba tekan e, untuk edit. Ini akan memungkinkan Anda mengedit file dan memperbaiki kesalahan.

Torandi
sumber
Menekan 'e' ketika Anda ditampilkan kesalahan, setelah Anda selesai mengedit, akan mengembalikan Anda sehingga Anda dapat memperbaiki kesalahan Anda. Sayangnya itu tidak secara eksplisit menyebutkan ini kepada Anda.
0

Bagi kita yang tidak memiliki konsol atau akses lokal ke server untuk boot ke run level 1 atau memiliki set root (atau kredensial / sertifikat tersedia), gunakan pkexec visudo atau pkexec vi / etc / sudoers, visudo lebih baik karena tidak memeriksa kesalahan pada file.

segera
sumber
Tetapi bagaimana Anda bisa pkexecmelakukan penawaran Anda jika Anda tidak tahu kata sandi root?
Scott