Seperti yang telah dicatat oleh pengguna sebelumnya, menggunakan "chmod 0440 / etc / sudoers" ketika file sudoers.d / README memiliki chmod yang salah, TIDAK BEKERJA.
kentfx
Apakah Anda menyarankan bahwa ketika masalahnya adalah izin menyala /etc/sudoers.d/README, kesalahan itu masih bisa dikatakan sudo: /etc/sudoers is mode 0777, should be 0440?
Saat layar pemilihan boot GRUB muncul, pilih Recovery Mode. (Jika tidak muncul, tekan Shifttombol ketika Anda melihat loader GRUB di bagian bawah).
Terminal hitam akan muncul, pada titik ini Anda dapat menjalankan perintah ini (Anda harus memiliki hak akses root):
chmod 0440 /etc/sudoers
kalau tidak
Anda harus meletakkan Ubuntu ke LiveCD, boot ke LiveCD, pasang Partisi Ubuntu Anda di Hard Drive (Buka browser file, seperti Nautilus, dan klik Partisi Ubuntu Anda, atau klik Tempat -> "xxGB Partition / Partisi Ubuntu Anda ").
Kemudian, buka terminal dalam sesi LiveCD dan ketik dua perintah ini:
cd /media/<name of permanent ubuntu partition>/etc
sudo chmod 0440 sudoers
Masalah Ekstra
Jika ada kesalahan (seperti yang diposting di bawah), ikuti prompt kesalahan dan sesuaikan setiap file sesuai dengan menggunakan salah satu dari dua langkah di atas:
sudo apt-get update sudo: /etc/sudoers.d/README adalah mode 0777, seharusnya 0440 sudo: / var / lib / sudo dapat ditulis oleh bukan pemilik (040777), harus menjadi mode 0700 [sudo] kata sandi untuk
Kedua perintah ini harus digunakan dengan tepat dengan langkah-langkah yang dijelaskan di atas. Mereka akan mengubah izin file yang terkait dengan file itu. 0440 akan memberikan pemilik (root) dan grup membaca izin dan 0700 akan memberikan pemilik (root), membaca, menulis, dan mengeksekusi izin.
Saya dapat menggunakan perintah sudo tetapi terbatas. sudo apt-get update sudo: /etc/sudoers.d/README is mode 0777, should be 0440 sudo: /var/lib/sudo writable by non-owner (040777), should be mode 0700 [sudo] password for
user20698
@Alex: ESC adalah untuk warisan GRUB kan? Shift harus ditekan untuk GRUB2.
Lekensteyn
@ user20698: Anda tidak perlu sudountuk yang pertama, yang kedua harus dilakukan dari Live CD.
Lekensteyn
Jika sudoers adalah 0777, bukankah seharusnya pengguna dapat menjalankan chmod 0440 /etc/sudoerstanpa sudo karena sudoers dapat ditulis oleh semua orang?
Seppo Erviälä
2
@Seppo: tidak, hanya pemilik file yang dapat mengubah izin file.
Lekensteyn
16
sudorusak dalam situasi ini, tetapi pkexec(antarmuka baris perintah ke PolicyKit ) masih berfungsi, sehingga Anda dapat memperbaikinya dengan satu perintah. Tidak perlu me-reboot.
pkexec chmod 0440 /etc/sudoers
Ini mengasumsikan PolicyKit diinstal. Jika ini adalah sistem desktop (bukan server tanpa GUI), itu adalah.
Mengapa Anda chmodmenyimpan beberapa file 440dan yang lainnya 0440? Bukankah seharusnya Anda menggunakan 0440seragam? Dan mengapa Anda mengubah izin /etc/sudoers.d/READMEsaat Anda menggunakan pkexecjalan, tetapi tidak sebaliknya? Dan bagaimana dengan file lain yang mungkin ada /etc/sudoers.d?
Eliah Kagan
1
Apa yang Anda lakukan untuk mendapatkan kesalahan ini?
Jika Anda melakukannya:, sudo chmod -R 777 /etcAnda memerlukan Live CD untuk memperbaikinya.
Boot ke Live CD dan pilih "Cobalah"
Pasang partisi Ubuntu Anda (atau partisi yang berisi /etcjika Anda telah meletakkan /etcdi partisi yang terpisah). Ini dapat dilakukan dengan menggunakan browser file seperti Nautilus atau menu Places
Buka Terminal dengan masuk ke Applications => Accessories => Terminal
Tentukan folder partisi Ubuntu Anda, Anda bisa daftar isi partisi yang dipasang dengan menggunakan ls -l /media. Itu mungkin bernama ubuntuatau disk. Pada langkah selanjutnya, saya akan berasumsi ubuntu.
Di Terminal, atur izin restriktif secara default:
sudo find /media/ubuntu/etc -type f -exec chmod g-wx,o-rwx {} \;
sudo find /media/ubuntu/etc -type d -exec chmod g-w,o-rwx {} \;
Selanjutnya, gunakan Live CD sebagai titik referensi untuk mengembalikan izin file. Perintah di bawah ini akan mengubah izin file untuk /etc/media/ubuntumenggunakan /etcfolder pada Live CD sebagai titik referensi. Itu hanya akan mengubah izin pada file ( -type f) dan direktori ( -type d) pada sistem file yang sama ( -xdev). Setiap kesalahan ditulis ke ~/errors.logKesalahan seperti "file tidak ditemukan" menunjukkan bahwa file pada sistem diinstal, tetapi tidak ditemukan pada Live CD. Perintah dari langkah 5 harus mengatur izin yang tepat untuknya, tetapi untuk hasil terbaik, Anda sebaiknya menginstal ulang paket.
cd /media/ubuntu && sudo find etc -xdev \( -type f -o -type d \) -f -exec chmod --reference=/{} {} \; 2>~/errors.log
Sekarang aman di ~/errors.logsuatu tempat (seperti http://paste.ubuntu.com/ ) sehingga Anda dapat menambahkannya sebagai komentar untuk jawaban ini jika Anda memiliki masalah dengan aplikasi.
Di Ubuntu, Anda dapat menyerang Ctrl+ Alt+ terlebih dahulu Tyang membuka terminal. Setelah itu Anda dapat menyalin-tempel perintah di bawah ini dengan Ctrl+ Cdan tempel terminal dengan Ctrl+ Shift+ V.
Bagi saya, saya harus menambahkan satu langkah lagi pkexecsaran - sarannya, karena ini , saya beruntung bahwa saya memiliki 2 sesi ssh ketika saya melakukan kesalahan bodoh:
Buka 2 terminal
Di terminal 2, jalankan echo $$untuk mendapatkan PID
/etc/sudoers.d/README
, kesalahan itu masih bisa dikatakansudo: /etc/sudoers is mode 0777, should be 0440
?Jawaban:
Pilihan pertama
Mengikuti posting ini :
Terminal hitam akan muncul, pada titik ini Anda dapat menjalankan perintah ini (Anda harus memiliki hak akses root):
kalau tidak
Anda harus meletakkan Ubuntu ke LiveCD, boot ke LiveCD, pasang Partisi Ubuntu Anda di Hard Drive (Buka browser file, seperti Nautilus, dan klik Partisi Ubuntu Anda, atau klik Tempat -> "xxGB Partition / Partisi Ubuntu Anda ").
Kemudian, buka terminal dalam sesi LiveCD dan ketik dua perintah ini:
Masalah Ekstra
Jika ada kesalahan (seperti yang diposting di bawah), ikuti prompt kesalahan dan sesuaikan setiap file sesuai dengan menggunakan salah satu dari dua langkah di atas:
Perbaiki dengan menindaklanjuti dengan:
Kedua perintah ini harus digunakan dengan tepat dengan langkah-langkah yang dijelaskan di atas. Mereka akan mengubah izin file yang terkait dengan file itu. 0440 akan memberikan pemilik (root) dan grup membaca izin dan 0700 akan memberikan pemilik (root), membaca, menulis, dan mengeksekusi izin.
sumber
sudo apt-get update sudo: /etc/sudoers.d/README is mode 0777, should be 0440 sudo: /var/lib/sudo writable by non-owner (040777), should be mode 0700 [sudo] password for
sudo
untuk yang pertama, yang kedua harus dilakukan dari Live CD.chmod 0440 /etc/sudoers
tanpa sudo karena sudoers dapat ditulis oleh semua orang?sudo
rusak dalam situasi ini, tetapipkexec
(antarmuka baris perintah ke PolicyKit ) masih berfungsi, sehingga Anda dapat memperbaikinya dengan satu perintah. Tidak perlu me-reboot.Ini mengasumsikan PolicyKit diinstal. Jika ini adalah sistem desktop (bukan server tanpa GUI), itu adalah.
sumber
Boot ke mode pemulihan, pilih shell root, dan:
Atau jika Anda tidak ingin memulai kembali Anda dapat menggunakan alternatif ini:
itu akan mengubah izin. Coba saja itu akan berhasil.
sumber
chmod
menyimpan beberapa file440
dan yang lainnya0440
? Bukankah seharusnya Anda menggunakan0440
seragam? Dan mengapa Anda mengubah izin/etc/sudoers.d/README
saat Anda menggunakanpkexec
jalan, tetapi tidak sebaliknya? Dan bagaimana dengan file lain yang mungkin ada/etc/sudoers.d
?Apa yang Anda lakukan untuk mendapatkan kesalahan ini?
Jika Anda melakukannya:,
sudo chmod -R 777 /etc
Anda memerlukan Live CD untuk memperbaikinya./etc
jika Anda telah meletakkan/etc
di partisi yang terpisah). Ini dapat dilakukan dengan menggunakan browser file seperti Nautilus atau menu Placesls -l /media
. Itu mungkin bernamaubuntu
ataudisk
. Pada langkah selanjutnya, saya akan berasumsiubuntu
.Di Terminal, atur izin restriktif secara default:
Selanjutnya, gunakan Live CD sebagai titik referensi untuk mengembalikan izin file. Perintah di bawah ini akan mengubah izin file untuk
/etc/media/ubuntu
menggunakan/etc
folder pada Live CD sebagai titik referensi. Itu hanya akan mengubah izin pada file (-type f
) dan direktori (-type d
) pada sistem file yang sama (-xdev
). Setiap kesalahan ditulis ke~/errors.log
Kesalahan seperti "file tidak ditemukan" menunjukkan bahwa file pada sistem diinstal, tetapi tidak ditemukan pada Live CD. Perintah dari langkah 5 harus mengatur izin yang tepat untuknya, tetapi untuk hasil terbaik, Anda sebaiknya menginstal ulang paket.~/errors.log
suatu tempat (seperti http://paste.ubuntu.com/ ) sehingga Anda dapat menambahkannya sebagai komentar untuk jawaban ini jika Anda memiliki masalah dengan aplikasi.sumber
Di Ubuntu, Anda dapat menyerang Ctrl+ Alt+ terlebih dahulu Tyang membuka terminal. Setelah itu Anda dapat menyalin-tempel perintah di bawah ini dengan Ctrl+ Cdan tempel terminal dengan Ctrl+ Shift+ V.
sumber
Bagi saya, saya harus menambahkan satu langkah lagi
pkexec
saran - sarannya, karena ini , saya beruntung bahwa saya memiliki 2 sesi ssh ketika saya melakukan kesalahan bodoh:echo $$
untuk mendapatkan PIDpkttyagent --process PID_FROM_STEP2
di terminal 2pkexec chmod 0440 /etc/sudoers
pkexec chown root:root /etc/sudoers
sumber