Saya tidak sengaja melakukan perintah chown -R root / ketika mencoba mengubah izin ke folder publik aplikasi rails saya. Saya percaya ini mengubah izin untuk semua folder saya di direktori /. Jadi pertanyaan saya adalah, seberapa berbahayanya hal ini, sebenarnya pertanyaan yang lebih baik adalah, apakah ada cara untuk membatalkan ini?
linux
unix
permissions
filesystems
chmod
pengguna1938700
sumber
sumber
find
semua file yang dimiliki oleh root di mana grup tidak sesuai, dan chown semuanya untuk pengguna yang cocok dengan grup. Catat kegagalan, dan hadapi secara individual.Jawaban:
Salah satu cara untuk mengurangi masalah di sini (tidak menyelesaikan, tetapi membantu Anda keluar dari lubang) adalah menjalankan proses pada sistem yang sama untuk mengumpulkan kepemilikan yang sesuai untuk file. Saya menghargai kemungkinan kecocokan yang tepat agak tipis, tetapi jika kedua o / s berada di tingkat yang sama dengan paket yang sama diinstal Anda mungkin beruntung.
Setelah Anda mengumpulkan izin file ke file, Anda kemudian dapat menjalankan proses pada sistem Anda sendiri untuk membaca file dan izin / kepemilikan dari yang baik dan menggantinya pada Anda. Saya punya beberapa aplikasi rumahan kecil di Linux yang melakukan ini.
Misalnya
RWX * UID * GID * hal-hal lain * direktori * nama file
sumber
Pertama-tama, hentikan perintah jika masih berjalan!
Sekarang semuanya akan menjadi milik root dan itu cukup bermasalah.
Anda harus mencoba memulihkan informasi dari cadangan terbaru Anda.
Penting juga untuk tidak me-restart sistem sebelum memeriksa semua aplikasi yang sedang berjalan dan pengguna meluncurkannya saat boot. Jika Anda melakukannya, beberapa dari mereka mungkin tidak memulai dengan benar karena masalah izin.
Semoga berhasil.
sumber
Sangat dan tidak cukup.
"Sangat" dalam arti bahwa jika perintah memang telah melalui, keamanan Anda kacau. Anda sekarang tidak tahu jalur mana yang memiliki pemilik apa dan siapa yang harus diizinkan melakukan apa.
"Tidak sepenuhnya" dalam arti - apakah Anda yakin Anda root ketika Anda melakukannya dan apakah perintahnya sampai akhir? Jika Anda membatalkannya, segera setelah Anda melihatnya, maka Anda mungkin beruntung dan perbaikannya mungkin rendah. Jika Anda tidak melakukan root, perintah ini seharusnya tidak dapat melakukannya, kecuali Anda melakukan sesuatu seperti
sudo ...
.Tidak ada obat tunggal untuk ini. Jika Anda memiliki cadangan, Anda dapat memulihkannya. Anda mungkin perlu memeriksa kepemilikan dalam cadangan dan menerapkannya. Jika Anda telah menggunakan pemeriksa rootkit (katakanlah rkhunter), itu mungkin memiliki daftar kepemilikan paling dasar dan mungkin dapat memperbaikinya. (Sangat tidak mungkin).
sumber
Setidaknya pada Fedora, perintah RPM memiliki opsi
--setperms
dan--setugids
, dengan menggunakan itu Anda dapat memperbaiki sebagian besar file yang dimiliki sistem sepertirpm --setugids -a
. Untuk (agak) memperbaiki file untuk setiap pengguna, Anda dapat melakukannya untuk masing-masingchown -R user /home/user
. Mungkin akan ada sisa-sisa yang belum diperbaiki oleh yang di atas, terutama jika Anda memiliki semacam server (web, ftp, lainnya), yang harus ditangani satu per satu.Mungkin distribusi lain memiliki mekanisme serupa. Atau melakukan refresh penuh (yaitu, menginstal semuanya lagi, seperti itu entah bagaimana rusak. OK, itu adalah entah bagaimana rusak.)
[Ya, ini lagi cara Unix yang agak kejam untuk mengajar pengguna yang tidak menaruh curiga untuk mempertimbangkan setiap perintah dengan hati-hati sebelum menekan ENTER, dan menggunakan root dengan hemat . Anggap dirimu sendiri yang diajari.]
sumber
setuid
dansetgid
izin harus ditetapkan dengan tangan.rpm
tidak akan mengembalikannya.Jika Anda menggunakan OSX apple menyediakan fitur pemulihan dalam Disk Utilities untuk memperbaiki masalah ini. Jika Anda menggunakan distro linux, saya cukup yakin Anda harus mengulang semua izin secara manual. Dalam kedua kasus tersebut, pukul tangan Anda dan jangan lakukan lagi
sumber
Sayangnya saya tidak tahu cara untuk "membatalkan" itu, tetapi Anda mungkin dapat meninggalkan file sistem yang dimiliki oleh root dan mengembalikan semua file dalam $ HOME Anda untuk dimiliki oleh Anda (dan melakukan hal yang sama untuk semua pengguna sistem). Pada titik itu Anda dapat memperbaiki izin dan / atau pemilik pada setiap file yang tidak ada dalam direktori $ HOME Anda yang membutuhkannya saat muncul. Ya ini menyebalkan, tapi saya rasa tidak ada perbaikan yang mudah. Itulah yang akan saya lakukan.
sumber
Saya akan mengatakan bahwa Anda cukup "kacau" seperti yang Anda katakan. Cara terbaik (dan paling efisien) adalah menginstal ulang dan mengembalikan item penting dari cadangan Anda yang baik. Maaf ini bukan situasi yang umumnya memiliki perbaikan cepat dengan akhir yang bahagia. Semoga berhasil!
sumber