Saya masuk chmod -R 777 /usr/bin
dan sekarang sudo tidak berfungsi.
Dikatakan sudo must be setuid root
.
Beberapa saran online dikatakan berjalan chown root:root /usr/bin/sudo
chmod 4755 /usr/bin/sudo
.
Saat memasukkannya chown root:root /usr/bin/sudo
menunjukkan opened in readonly mode
kesalahan.
permissions
sudo
root
chmod
Manojkumar
sumber
sumber
pkexec
metode dalam jawaban saya (yang telah Anda tandai sebagai diterima) memecahkan masalah ini untuk Anda? Saya menjadi yakin bahwa, seperti yang dikomentari Damien Roche dan Oli, metode ini tidak benar-benar berfungsi setelah sebuahsudo chmod -R 777 /usr/bin
perintah berhasil diselesaikan. Sepertisudo
,pkexec
harus setuid root untuk bekerja. (Saya tidak yakin mengapa, karena menggunakan layanan polkit , tetapi itu benar.) Namun, saya pikir saya pernah mendengar orang lain mengatakan ini bekerja untuk mereka, yang aneh! Apakah Anda menekan Ctrl + C sebelum777
perintah chmod selesai?sudo chmod -R 777 /usr/bin
, tetapi hanya setelah masuk keroot
akun.Jawaban:
Pada sistem desktop Ubuntu, PolicyKit diinstal, sehingga
pkexec
dapat digunakan untuk memperbaiki patahsudo
executable atausudoers
file yang . Anda tidak perlu boot ke mode pemulihan dan Anda tidak perlu boot dari live CD. Anda bahkan tidak perlu memulai ulang.Dalam hal ini, jalankan perintah berikut:
Lihat pertanyaan ini untuk informasi lebih lanjut.
sumber
pkexec must be setuid root
! Sungguh mimpi buruk!pkexec
persis sama dengan kesulitansudo
. Ini biasanya setuid dan tinggal di/usr/bin
. Saya sudah mengujinya dan ini tidak berhasil setelahnyachmod -R 777 /usr/bin
.pkexec
harus setuid root untuk bekerja (bukankah itu bekerja melalui daemon polkit seperti proses non-setuid lainnya?), Tetapi memang perlu itu. Saya telah mengomentari pertanyaan untuk melihat apakah OP (yang menerima ini) dapat menjelaskan apa, jika ada, yang benar atau membantu tentang jawaban ini. Dan saya telah menambahkan spanduk sementara ke bagian atas posting ini jadi saya tidak menyesatkan lebih lanjut. Jika jawaban ini terus ada, formulir yang diperbaiki mungkin akan memasukkan beberapa info yang saat ini ada di spanduk itu.su
, yang terletak di bawah / bin/usr/bin
membutuhkan hak akses root, tetapi Anda tidak dapatsu
melakukan root pada sebagian besar sistem Ubuntu karena login root dinonaktifkan secara default. Berbedasudo
danpkexec
, ketika Anda menggunakansu
untuk mendapatkan root shell atau untuk menjalankan perintah sebagai root, Anda harus memberikan kata sandi root, bukan milik Anda. Tetapi root tidak memiliki kata sandi secara default di Ubuntu (yang mengatakan bahwa otentikasi berbasis kata sandi untuk root akan selalu gagal, bukan berarti memasukkan kata sandi kosong akan berhasil). Lihat RootSudo untuk detailnya.Bahkan ketika menjalankan dari live CD / Flashdisk, Anda harus mengawali
chmod
perintah Anda dengansudo
. Jadi langkah Anda akan seperti berikut:sudo chmod 0755 <path>
untuk menyesuaikan izinCara mengetahui di mana disk Anda dipasang: dari jendela terminal, jalankan
mount
(tanpa argumen). Ini akan mencantumkan semua perangkat yang dipasang. Periksa yangtype
terdaftar - Anda dapat melewati semua yang tidak menggunakan "sistem file nyata" (disk Anda mungkin menggunakan ext3 atau ext4 - Anda pasti dapat melewatkan hal-hal seperti proc, sysfs dan sejenisnya). Jika sesuatu terdengar menjanjikan (terlihat seperti/dev/sda1 on /media/sda1 type ext3
), periksa isinya menggunakanls /media/sda1
untuk melihat apakah itu itu.Jika tidak dipasang, Anda dapat memeriksa
/dev
entri di mana disk tersebut berada (gunakanls /dev/ |grep '/dev/sd
untuk memeriksa perangkat yang tersedia; disk Anda akan terlihat seperti/dev/sdaX
,/dev/sdbX
atau sejenisnya - dengan X menjadi angka). Bandingkan ini dengan daftar perangkat yang dipasang. Jika tidak ada di sana, coba pasang dan periksa isinya (seperti yang ditunjukkan di atas). Untuk memasangnya, pertama-tama buat titik mount, misalnyasudo mkdir /mnt/mydisk
, lalu coba pasang perangkat menggunakanmount /dev/sda1 /mnt/mydisk
dan periksa isinya menggunakanls /mnt/mydisk
.Setelah Anda mendapatkan disk yang tepat di sana, Anda dapat mengubah kembali izin pada dir usr Anda:
sudo chmod 0755 /mnt/mydisk/usr
.Sekarang Anda mungkin masih dalam kesulitan jika Anda awalnya menjalankan
chmod
perintah secara rekursif, menggunakan-R
parameter. Dalam hal ini Anda dapat mencoba memperbaiki setiap entri secara manual - atau Anda dapat langsung menginstal baru ...sumber
mount /dev/sda /mnt/mydisk
dariroot@Ubuntu:/dev#
mkdir -p /mnt/mydisk && mount /dev/sda1 /mnt/mydisk
(saya pikir Anda tidak memiliki partisi/dev/sda
, jadi Anda pasti telah melewatkan nomor partisi juga. Pastikan Anda menentukan perangkat yang benar (atau pemasangan akan gagal).Saya pikir Mat benar, Anda harus root untuk menambahkan bit ke / usr / bin, tetapi tentu saja sudo rusak. Jika Anda memiliki kata sandi root, Anda dapat menggunakannya untuk masuk sebagai root dan kemudian perbaiki izin dengan perintah di atas. Namun, jika tidak, (dan saya juga tidak), mungkin yang terbaik adalah:
Root selalu nomor pengguna 0 sehingga root pada sistem apa pun dapat membuat perubahan diizinkan untuk melakukan root pada sistem file lain.
sumber
Saya tidak memiliki banyak pengetahuan. Tetapi langkah-langkah ini menyelesaikan masalah saya bahkan tanpa me-restart mesin saya. Ikuti langkah ini:
sumber
root
, yang bukan merupakan konfigurasi default Ubuntu.Dalam upaya untuk mengatur izin untuk skrip lokal saya, saya melanggar izin sudo dan mengubah kepemilikan, karena kesalahan. Saya dapat mengubah kembali kepemilikan sudo menjadi root dengan melakukan hal berikut:
Langkah 1: Beralih ke mode pemulihan ubuntu . Jika Anda tidak mengetahui prosesnya, Anda dapat merujuk jawaban di sini: /ubuntu//a/172346/223901
Langkah 2: Setelah dalam mode pemulihan, pilih root - Drop to root shell prompt
Langkah 3: Lakukan perintah berikut
Tunggu sistem Anda untuk boot secara normal dan Anda akan melihat kepemilikan sudo kembali ke root.
sumber