GNU/Linux >> Belajar Linux >  >> Ubuntu

Tidak Dapat Membuat Stat /etc/sudoers:Tidak Ada File Atau Direktori Tersebut?

Saya menggunakan Ubuntu 14.04 baru-baru ini. Dan entah bagaimana saya mengubah izin menjadi /etc/sudoers mengajukan. Jadi setiap kali saya menjalankan perintah apa pun menggunakan Sudo, saya mendapatkan kesalahan ini:

sudo: unable to stat /etc/sudoers: No such file or directory
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin

Saya dapat masuk sebagai pengguna dan mengubah izin kembali. Jadi sekarang ketika saya menjalankan ls -l /etc/sudoers perintah yang saya dapatkan:

-r--r----- 1 root root 755 жов 14  2016 /etc/sudoers

Tetapi saya tidak dapat menjadikan root sebagai pemilik. Dan saya masih mendapatkan kesalahan yang sama, ketika saya mencoba menggunakan sudo.

Saya telah membaca banyak hal menakutkan tentang masalah ini. Jadi bisakah Anda membantu saya menyelesaikan masalah ini? Saya akan sangat berterima kasih atas sarannya.

Jawaban yang Diterima:

Pintasan:

dpkg-konfigurasi ulang: Jika saja ada yang salah dengan izin /etc/sudoers file, dengan akses root jalankan:dpkg-reconfigure sudo . sesuatu seperti pkexec dpkg-reconfigure sudo harus melakukan pekerjaan.

visudo: Jika dpkg-reconfigure tidak bekerja untuk Anda, maka jalankan saja pkexec visudo , sudoers file akan dibuka di editor, lalu simpan dan tutup file, visudo akan memperbaiki izin untuk Anda.

Lagi pula, jika Anda mengubah sudoers.d izin direktori juga, lalu jalankan:

pkexec chmod 755 /etc/sudoers.d

Jika file ada di sana, dan izinnya sebagaimana mestinya tetapi Anda masih mendapatkan pesan kesalahan ini, satu-satunya kemungkinan yang muncul di benak saya adalah Anda telah melanggar izin lain dan sudo tidak memiliki akses ke /etc/sudoers . tebakan yang paling mungkin adalah izin dari /etc/ .

Jadi jalankan:

pkexec chmod 755 /etc

Kami selesai, namun jika Anda menginginkan instruksi terperinci untuk memulihkan sudoers yang rusak atau dihapus file dengan izin yang kacau ikuti, kami akan menggunakan cara lain untuk memperbaikinya.

Pengantar

Saya mengacaukan /etc/sudoers saya file untuk mendapatkan kesalahan yang sama seperti Anda. Saya menjadi sangat dekat, jadi saya benar-benar menghapus milik saya dan itu menjadi persis seperti milik Anda.

Apa yang telah saya lakukan untuk memperbaiki masalah ini:

Akun root saya terkunci, dan tidak memiliki kata sandi, jadi tidak mungkin bagi saya untuk melakukan apa yang ingin saya lakukan. namun jika akun root Anda aktif dan memiliki kata sandi, alihkan ke pengguna root dengan su - dan lewati bagian ini. jika tidak, ikuti petunjuknya.

Sebelum melangkah lebih jauh, saya harus menyebutkan bahwa Anda selalu dapat menggunakan live disk untuk melakukan chroot ke dalam sistem Anda, ada banyak instruksi tentang chroot menggunakan live disk, jadi saya tidak akan repot-repot memberikan semua instruksi itu lagi, sebaliknya saya akan menganggap kita tidak memiliki live disk dan kita akan menggunakan apa yang sudah kita miliki, untuk memperbaiki masalah ini. Jika Anda senang dengan cheroot pergi ke sana, itu akan berhasil juga.

Mendapatkan akses root

  • Reboot sistem Anda
  • Saat grub muncul tekan e untuk mengeditnya
  • Di akhir baris yang dimulai dengan linux, tambahkan init=/bin/bash
  • Tekan CTRL +X
Terkait:Bagaimana cara menyesuaikan (menambah/menghapus folder/direktori) menu "Tempat" dari aplikasi "File" Ubuntu 13.04?

Sekarang Anda akan dijatuhkan ke shell bash dengan akses root. pertama remount sistem file dengan akses tulis:

mount -o remount,rw /

Kemudian buka kunci pengguna root dan atur kata sandi di atasnya:

passwd -u root
passwd root

Sekarang Jika /etc/sudoers . Anda masih ada di /etc , pindahkan ke tempat lain:

mv /etc/sudoers /etc/sudoers.broken

Karena kami akan memberi tahu manajer paket kami bahwa file ini hilang, dan itu akan menggantikannya untuk kami dengan yang benar, jadi seharusnya tidak ada di sana.

Kami hampir selesai, reboot sistem Anda. login sebagai pengguna biasa, buka terminal lalu coba su - untuk beralih ke pengguna root. Saya tidak dapat melakukannya, jadi yang saya lakukan adalah menggunakan CTRL +ALT +F1 , untuk masuk ke tty1 , lalu saya masuk sebagai root dengan kata sandi baru yang baru saja kita tetapkan.

Kembalikan sudoers

Kita cukup menginstal ulang sudo paket, namun menginstal ulang tidak mengembalikan file ini, kita harus memberi tahu dpkg untuk memperbaiki file konfigurasi yang hilang juga, seperti ini:

apt-get -o Dpkg::Options::="--force-confmiss" install --reinstall sudo

Ingat bahwa ini akan menanyakan tentang menginstal /etc/sudoers file, dengan memasukkan y katakan ya.

Jika tidak berhasil untuk Anda, lakukan hal berikut sebagai root:

mkdir /root/tmp
cd /root/tmp
apt-get download sudo
dpkg-deb -x sudo*.deb .
cp etc/sudoers /etc/sudoers
cd /root
rm -r tmp

Sekarang mungkin ada beberapa perbedaan antara izin, jalankan dpkg-reconfigure sudo untuk memperbaikinya. jika tidak berhasil, jalankan visudo sebagai pengguna root, sudoers file akan dibuka di editor, lalu simpan dan tutup file, visudo akan memperbaiki izin untuk Anda.

Jika semuanya berjalan dengan baik, file sudoers Anda akan kembali dan Anda akan dapat menggunakan sudo seperti sebelumnya.


Ubuntu
  1. Kesalahan dalam file Sudoers? Inilah cara Anda memperbaikinya.

  2. Perbaiki file sudoers yang rusak – sudo:parse error di /etc/sudoers dekat baris 21 [Ubuntu]

  3. Bagaimana Linux Menangani Beberapa Pemisah Jalur Berturut-turut (/home////username///file)?

  1. Kubuntu Menunjukkan Kesalahan Saat Masuk (file:///usr/share/sddm//themes/breeze/main.qml:no File Atau Direktori Tersebut)?

  2. Memahami direktori /etc/xinetd.d di Linux

  3. CentOS / RHEL :Cara Memulihkan dari file /etc/passwd yang dihapus

  1. Tidak dapat menjalankan skrip bash bahkan sebagai root?

  2. Pola regex untuk mengedit file /etc/sudoers

  3. unix:///var/run/supervisor.sock tidak ada file seperti itu