Ubuntu: borked file sudoers saya, bagaimana saya bisa memperbaikinya?

11

Saya mengedit /etc/sudoersfile saya dan menyimpannya tetapi ada kesalahan sintaksis di sana. Sekarang saya tidak bisa sudo vim /etc/sudoerskarena sudo menganggap file sudoers tidak valid.

Bagaimana saya bisa memperbaikinya?

fret basset
sumber

Jawaban:

6

Boot sistem ke mode tunggal dan kemudian edit.

Ignacio Vazquez-Abrams
sumber
Terima kasih, Ubuntu saya berjalan di bawah Virtualbox. Bagaimana cara boot ke mode pengguna tunggal?
fred basset
Namun saya tidak mendapatkan opsi grub saat boot, boot langsung ke Ubuntu ...
fred basset
Coba tahan <Ctrl> atau sesuatu.
Ignacio Vazquez-Abrams
1
@red basset: Saat vm mulai tekan Esc beberapa kali yang seharusnya membuat Anda menjadi grub kemudian pilih opsi mode pemulihan.
user9517
21

Anda tidak boleh mengedit file sudoers Anda secara langsung. Gunakan visudo- ini akan melindungi Anda dari kesalahan sintaksis ini di masa depan.

Untuk memulihkan dari situasi ini, boot ke mode single-user dan edit file atau boot dari livecd dan lakukan hal yang sama.

EEAA
sumber
Terima kasih, saya bertanya-tanya apa yang visudo lakukan secara berbeda. Saya perlu bekerja sekarang bagaimana boot ke mode pengguna tunggal. Ubuntu saya berjalan di bawah Virtualbox.
fred basset
1
visudo menyebabkan Anda mengedit salinan file sudoers. Ini hanya akan mengganti file sudoers jika validasi saat Anda menyimpannya. Ini akan menggunakan editor yang ditentukan oleh variabel EDITOR Anda, sehingga Anda dapat menggunakan editor pilihan Anda. Itu juga dapat digunakan dalam mode periksa jika Anda mengedit file dan ingin memastikan itu masih valid.
BillThor
2

Seperti disebutkan dalam pertanyaan serupa di askubuntu , ini mungkin berfungsi tanpa harus reboot ke mode pengguna tunggal:

pkexec visudo
Tom
sumber
Sejauh ini, inilah cara termudah untuk melakukannya, jika tersedia.
belacqua
1

Omong-omong, jika Anda memiliki kata sandi root, cukup login dengannya dan atur kembali seperti semula.

chmod 0440 / etc / sudoers

Ini akan menghindarkan Anda dari boot ke mode single-user atau terburuk, boot dari livecd.

Dalam kasus saya, saya tidak mampu menurunkan server.

yaxzone
sumber
1

Jika Anda memiliki Docker yang terinstal dan pengguna Anda adalah anggota dockergrup, Anda dapat dengan mudah keluar dari acar ini (dan beberapa lainnya) tanpa me-reboot atau apa pun:

  1. $ docker run -it --rm -v '/etc/:/root/host.etc/' debian bash
  2. apt-get update && apt-get install [vim|nano|whatever]
  3. cd ~/host.etc/
  4. Perbaiki file yang bermasalah
  5. exit
Adrian Günter
sumber
Buruh pelabuhan? Pernahkah Anda melihat Docker di mana saja di pertanyaan awal?
Pemburu Rusa
2
Karena pertanyaannya tidak merinci apapun tentang lingkungan si penanya dan sekarang tahun 2015, artinya cukup banyak orang yang memasang Docker, saya tidak mengerti sikap Anda terhadap saya atau penghinaan Anda atas kontribusi saya. Sama sekali tidak terduga bahwa orang lain dalam situasi ini akan menginstal perangkat lunak yang, sampai hari ini, telah dibintangi oleh 23.5k orang di GitHub. Jika pkexecjuga karena alasan tertentu tidak tersedia maka ini menyediakan metode alternatif, tanpa me-reboot, itu hampir sama cepat dan sederhana.
Adrian Günter