“Chown -R root /” nasıl mahvoldum?


8

Yanlışlıkla chown -R root / komutunu çalıştırırken, rails uygulamamın ortak klasörüne izinleri değiştirmeye çalıştım. Bunun, / dizinindeki tüm klasörlerimin izinlerini değiştirdiğine inanıyordum. Öyleyse benim sorum şu, bu ne kadar tehlikeli, aslında daha iyi bir soru, bunu geri almak için yine de var mı?


3
Bu otomatik olarak geri alınamaz ve evet, sisteminiz üzerinde önemli bir etkiye sahiptir (çeşitli ev dizinleri dahil ancak bunlarla sınırlı değildir). Umarım yeni bir yedeğiniz vardır. İyi şanslar.
Frédéric Hamidi

Sisteminizi uygun izinler ve dosya sahipliği için kontrol eden programlar var. Bence tripwire erken veya erken biriydi. Birden fazla kullanıcınız yoksa, durumu yalnızca bir rapor alarak ve / veya böyle bir araçtan düzelterek kurtarmanız mümkün olabilir.
Minopret

Ayrıca, “daha ​​kötü hale getirecek herhangi bir şekilde tepki verme” ve “en kötüyü varsayma” anlamına gelen aşağıdaki büyük tavsiyeyi okuyun. Veya şaka sürümünü kullanarak bu önemli genel sorun giderme adımlarını unutmayın: Acil durum operatörü: "Panik yapmayın, arkadaşınızın öldüğünden emin misiniz?" Arayan: BANG "Evet, ne yazık ki, öldü."
Minopret

Çoğu durumda, normal bir sistemde, sahibi olması gereken bir dosya grubundan söyleyebilmelisiniz. Bu nedenle find, grubun uygun olmadığı yerde root'a ait olan tüm dosyalar ve hepsini gruba uygun olan kullanıcıya aktarabilir. Hataları oturum açın ve onlarla bireysel olarak ilgilenin.
agf

Bu komutu root olarak mı çalıştırdın? (Umarım değil ...)
Axel

Yanıtlar:


7

Buradaki sorunu azaltmanın bir yolu (çözülmez, ancak bir delikten çıkmanıza yardımcı olur), dosyalar için uygun sahipliği toplamak üzere benzer bir sistem üzerinde bir işlem yürütmektir . Kesin bir eşleşme şansının biraz zayıf olduğunu takdir ediyorum, ancak her iki o / s aynı paketlerle aynı seviyedeyse şanslı olabilirsiniz.

Dosya izinlerini bir dosyaya topladıktan sonra, kendi sisteminizde iyi olandan dosyaları ve izinleri / mülkiyeti okumak ve kendinize ait olanları değiştirmek için kendi sisteminizde bir işlem çalıştırabilirsiniz. Linux'ta sadece bunu yapan birkaç tane küçük evde yetiştirilen uygulama var.

Örneğin

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 * diğer şeyler * dizin * dosya adı


5

Her şeyden önce, hala çalışıyorsa komutu durdurun!

Şimdi her şey kökene ait olacak ve bu oldukça problemli.

Bilgileri en son yedeklemenizden geri yüklemeyi denemelisiniz.

Çalışan tüm uygulamaları ve kullanıcının önyükleme sırasında başlatmasını kontrol etmeden önce sistemi yeniden başlatmamak da önemlidir. Bunu yaparsanız, izin sorunları nedeniyle bazıları doğru şekilde başlamayabilir.

İyi şanslar.


3

Çok ve çok değil.

Komut gerçekten geçtiyse, "çok" anlamında, güvenliğinin berbat olduğu anlamına gelir. Artık hangi yolların hangi sahiplere sahip olduğunu ve kimin ne yapmasına izin verilmesi gerektiğini bilmiyorsunuz.

"Tam olarak değil" anlamında - bunu yaparken kök saldığınızdan ve komutun sonuna kadar gittiğinden emin misiniz? Eğer iptal ettiyseniz, onu görür görmez, o zaman şanslı olabilirsiniz ve tamiriniz düşük olabilir. Kök olmasaydınız, siz böyle bir şey yapmadıysanız, bu komutun bunu yapamaması gerekirdi sudo ....

Bunun tek bir çaresi yok. Bir yedeğiniz varsa, geri yükleyebilirsiniz. Yedeklemedeki sahipliği kontrol etmeniz ve uygulamanız gerekebilir. Bir rootkit (rkhunter) denetleyicisi kullanıyorsanız, en temel sahipliklerin bir listesine sahip olabilir ve muhtemelen düzeltebilir. (Çok muhtemel değil).


2

En azından Fedora'da, RPM komutu seçeneklere sahiptir --setpermsve --setugidsbunları kullanarak sisteme ait dosyaların çoğunu düzeltebilirsiniz rpm --setugids -a. Her kullanıcı için dosyaları (biraz) düzeltmek için her biri için yapabilirsiniz chown -R user /home/user. Muhtemelen yukarıdakiler tarafından düzeltilmemiş artıklar olacaktır, özellikle bir çeşit sunucunuz varsa (web, ftp, diğerleri), bunların tek tek ele alınması gerekir.

Muhtemelen diğer dağılımlar da benzer mekanizmalara sahiptir. Ya tam bir yenileme yapmak (her nasılsa tamam. Hasar gördü gibi yani, o, her şeyi yeni baştan yüklemek edildi nasılsa hasarlı.)

[Evet, yine de Unix’in, zalimce olmayan kullanıcılara ENTER tuşuna basmadan önce her bir komutu dikkatlice düşünmelerini ve kökten tasarruf etmelerini öğretmenin zalim yoludur . Kendinizi öğretilen düşünün.]


setuidve setgidizinlerin elle ayarlanması gerekir. rpmOnları geri almayacak.
jnas

1

OSX apple kullanıyorsanız, bu sorunu çözmek için Disk Yardımcı Programları içinde geri yükleme özelliği sağlar. Linux dağıtımı kullanıyorsanız, tüm izinleri manuel olarak yeniden yapmanız gerekeceğinden eminim. Her iki durumda da, ellerinizi şapırdatın ve bir daha yapma


Linux'ta bundan tam olarak kurtulabilmeniz muhtemel değildir. Sistemin çalışmasını sağlayabilseniz bile, kararsızlık veya güvenlik açığı olarak sizi daha sonra ısırmaya başlayacak bir şeyi kaçırdınız. Yedekleme veya yeniden yapılandırma yaklaşımından geri yükleme işleminin muhtemelen gerekli olduğunu söyleyebilirim.
Chris Kuehl

0

Maalesef "geri almanın" hiçbir yolunu bilmiyorum, ancak sistem dosyalarını root'a ait olarak bırakabilir ve $ HOME'unuzdaki tüm dosyaları size ait olacak şekilde geri yükleyebilirsiniz (ve aynısını tüm kullanıcılar için de yapabilirsiniz. sistemi). Bu noktada, $ HOME dizininizde olduğu gibi, ihtiyacı olan her dosyadaki izinleri ve / veya sahibini düzeltebilirsiniz. Evet bu bir acı, ama kolay bir çözüm olduğunu sanmıyorum. Zaten böyle yapardım.


0

Söylediğin gibi oldukça "berbat" olduğunu söyleyebilirim. En iyi yol (ve en verimli), iyi yedeklemelerinizden kritik öğeleri yeniden yüklemek ve geri yüklemektir. Üzgünüz, bu genellikle mutlu sonla hızlı bir şekilde çözüme kavuşan bir durum değildir. İyi şanslar!

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.