Saya telah melakukan ini:
sudo chown -R myname /usr/
dan sekarang saya tidak bisa menggunakan sudo
perintah karena kesalahan ini:
sudo: harus setuid root
Dan ketika saya membaca ini berarti bahwa pemilik file /usr/bin/sudo
ini bukan root. Ini pengguna saya sekarang karena chown di /usr
folder.
Di banyak forum dan blog orang menyarankan untuk melakukan ini sebagai root:
# chown root:root /usr/bin/sudo
# chmod 4111 /usr/bin/sudo
... tetapi masalah dengan ini adalah bahwa saya harus masuk sebagai root, tetapi saya tidak bisa karena Jika saya menulis su
di terminal kata sandi salah (sebenarnya saya menggunakan kata sandi apa yang saya tambahkan ke pengguna saya):
$ su
Password:
su: Authentication failure
Jadi bisakah saya mendapatkan kembali sudo
perintahnya?
Sunting: Ubuntu saya berada di bawah Paralells di Mac OS X.
su
, Anda akan diminta kata sandi root , bukan kata sandi pengguna Anda seperti dengansudo
. Apakah Anda tahu kata sandi root untuk mesin ini?sudo chmod -R cirk:cirk /usr
apa yang ingin Anda capai?Jawaban:
Jika Anda memiliki sistem serupa yang dapat Anda gunakan sebagai panduan untuk melihat apa kepemilikan yang benar untuk semua file, maka Anda dapat boot ke mode penyelamatan, turun ke shell root, dan secara manual mengembalikan kepemilikan yang benar ke semua file dalam
/usr
.Cara tercepat adalah menginstal ulang OS Anda atau memulihkan dari cadangan.
Di Ubuntu atau yang serupa, maka tidak ada kata sandi root secara default (akun dinonaktifkan), itulah sebabnya Anda tidak bisa
su
.sumber
chown
tidakchmod
. Karena semua yang ada di/usr
folder seharusnyaroot:root
, ini harus menjadi perbaikan yang mudah, bukan perbaikan yang melelahkan yangchmod
berarti seorang clobber.chown
me-reset bit setxid. Ada beberapa file di/usr
dalamnya yang tidak dimiliki oleh root; lebih banyak yang berada dalam kelompok yang berbeda (terutama program setgid di/usr/bin
).Karena Anda telah menyembunyikan izin pada satu-satunya hal yang memberi Anda akses tingkat root, Anda akan memerlukan bantuan dari LUAR lingkungan perangkat lunak saat ini untuk memperbaikinya.
Saya menyarankan agar cara termudah adalah mem-boot LiveCD untuk distro Anda, me-mount drive Anda, dan mengubah izin file menggunakan yang
chmod
Anda daftarkan dari sana.Anda juga bisa mencoba mem-boot ke mode single-user untuk mendapatkan shell root.
Sadarilah bahwa biasanya semua hal dalam
/usr/
direktori harus dimilikiroot
sehingga Anda hanya dapat melakukan rekursifchown
untuk memperbaiki apa pun yang Anda bangkrut. ( Edit: Per @Gilles komentar tampaknya berjalanchown
istirahat setuid dan bit setgid, sehingga Anda akan perlu secara manual dibandingkan dengan sistem yang ada untuk mengembalikan semua dari mereka sekali Anda memperbaiki kepemilikan lagi.)Namun, BEBERAPA seharusnya
4111
. Yang ekstra itu adalah izin khusus tapi itu membuatnya dieksekusi sebagai root bahkan ketika dijalankan sebagai pengguna! Hanyasudo
dan beberapa perintah pilih yang harus mengatur bit izin ini. Jika Anda tidak menjalankanchmod
untuk memulai dengan Anda mungkin tidak perlu memperbaikinya sama sekali , semua izin harus sudah benar. Jangan menjalankanchmod
operasi besar tanpa mengetahui semua izin yang seharusnya.sumber
sudo chown -R root /usr/
?/usr
pada LivdCD, Anda harus memasangnya di suatu tempat dan berlari melawan jalan itu, katakanlah/mnt/mydrive/usr
. Maka Anda harus memperbaiki bit setuid/mnt/mydrive/usr/bin/sudo
. Kemudian lihat / usr pada livecd dan lihat apakah ada kepemilikan lain selain root.find /usr -not -uid 0
dan ubah yang cocok. Kemudian cari hal-hal yang memiliki bit setuid atau setgid yang berbeda dan pastikan semuanya cocok. Jika Anda memiliki sistem Ubunutu sungguhan untuk dibandingkan dengan yang terbaik.Dalam mode pemulihan Ubuntu, masukkan perintah berikut .. Ini memperbaiki masalah yang saya buat ..
Semoga ini akan memperbaiki masalah Anda. (Atau orang lain)
Saya menemukan ini di sini di posting blog ini .
sumber
Ini jauh lebih mudah daripada yang disarankan oleh jawaban lain. Tidak perlu memformat, reboot atau menggunakan live CD.
Ini adalah cara termudah untuk memperbaiki masalah ini. Penjelasan, sudo rusak (saya tahu korup adalah istilah yang salah, tetapi tidak berfungsi, jadi, kita harus menghindari menggunakan sudo)
Saya telah menguji metode ini pada Linux mint. Yang merupakan sistem seperti ubuntu. Biarkan saya tahu ini metode ini tidak berfungsi pada OS lain. Akan memperbarui jawaban yang sesuai.
Terima kasih
sumber
su root
, dan karenasudo
tidak berfungsi, tidak mungkin untuk mengatur kata sandi rootIni lebih sederhana daripada orang membuatnya. Coba yang berikut ini:
su
perintah yang rusak , logout sebagai pengguna Anda saat ini dan masuk lagi sebagai root melalui Display Manager normal Anda (yaitu layar login).chown root:root /usr/bin/sudo && chmod 4755 /usr/bin/sudo
Ini harus memperbaiki
sudo
perintah dan membuat Anda bangun dan berjalan lagi dalam waktu singkat.sumber
Untuk login sebagai root, tanpa su atau sudo, Anda dapat menggunakan pkexec:
Sekarang ubah izin file:
sumber