“Chown -R root /” seberapa kacau aku?

8

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?

pengguna1938700
sumber
3
Ini tidak dapat diurungkan secara otomatis, dan ya, ini berdampak signifikan pada sistem Anda (termasuk, tetapi tidak terbatas pada, berbagai direktori home). Saya harap Anda memiliki cadangan berguna terbaru. Semoga berhasil.
Frédéric Hamidi
Ada beberapa program yang memeriksa sistem Anda untuk izin dan kepemilikan file yang sesuai. Saya pikir tripwire adalah atau yang lebih awal. Jika Anda tidak memiliki banyak pengguna, Anda mungkin dapat menyelamatkan situasi hanya dengan mendapatkan laporan dan / atau memperbaikinya dari alat tersebut.
minopret
Baca juga saran hebat di bawah ini yang menyatakan "jangan bereaksi dengan cara apa pun yang akan memperburuknya" dan "jangan menganggap yang terburuk". Atau ingat langkah-langkah pemecahan masalah umum yang penting ini menggunakan versi lelucon: Operator darurat: "Jangan panik, apakah Anda yakin teman Anda sudah mati?" Penelepon: BANG "Ya, sayangnya, dia sudah mati."
minopret
Dalam kebanyakan kasus, pada sistem normal, Anda harus dapat mengetahui dari grup file siapa pemiliknya. Jadi findsemua 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.
agf
Sudahkah Anda menjalankan perintah itu sebagai root? (Kuharap tidak ...)
Axel

Jawaban:

7

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

777*0*0*S*16*1334559119*1334532895*1361208513*/usr/lib32/*libgomp.so.1
644*0*0*F*67370*1359536382*1359374461*1359717843*/usr/lib32/*librt.a
644*0*0*F*59044*1334559119*1334532931*1355405098*/usr/lib32/*libgomp.so.1.0.0
644*0*0*F*1238*1359536382*1359374461*1359717843*/usr/lib32/*libBrokenLocale.a
777*0*0*S*17*1359536382*1359374460*1361208513*/usr/lib32/*libdl.so
644*0*0*F*905712*1334559116*1334533011*1355405098*/usr/lib32/*libstdc++.so.6.0.16
777*0*0*S*15*1333306601*1323929512*1361208513*/usr/lib32/*libbz2.so.1.0
777*0*0*S*24*1359536382*1359374460*1361208513*/usr/lib32/*libnss_files.so
644*0*0*F*1128*1359536382*1359374462*1359717843*/usr/lib32/*crt1.o

RWX * UID * GID * hal-hal lain * direktori * nama file

FreudianSlip
sumber
5

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.

fedorqui
sumber
3

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).

carlspring
sumber
2

Setidaknya pada Fedora, perintah RPM memiliki opsi --setpermsdan --setugids, dengan menggunakan itu Anda dapat memperbaiki sebagian besar file yang dimiliki sistem seperti rpm --setugids -a. Untuk (agak) memperbaiki file untuk setiap pengguna, Anda dapat melakukannya untuk masing-masing chown -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.]

vonbrand
sumber
setuiddan setgidizin harus ditetapkan dengan tangan. rpmtidak akan mengembalikannya.
jnas
1

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

Mrshll187
sumber
Mungkin tidak mungkin untuk pulih sepenuhnya dari ini di Linux. Bahkan jika Anda dapat membuat sistem bekerja, Anda mungkin melewatkan sesuatu yang mungkin kembali menggigit Anda nanti, baik sebagai ketidakstabilan atau kerentanan keamanan. Saya akan mengatakan bahwa pemulihan dari cadangan atau membangun kembali pendekatan mungkin diperlukan.
Chris Kuehl
0

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.

Freedom_Ben
sumber
0

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!

mdpc
sumber