„Chown -R root /” jak się pieprzę?


9

Przypadkowo wykonałem polecenie chown -R root / podczas próby zmiany uprawnień do publicznego folderu mojej aplikacji railsowej. Wierzyłem, że to zmieniło uprawnienia do wszystkich moich folderów w katalogu /. Więc moje pytanie brzmi: jak niebezpieczne jest to, w rzeczywistości byłoby lepsze pytanie, czy można to cofnąć?


3
Nie można tego cofnąć automatycznie i tak, ma to znaczący wpływ na twój system (w tym między innymi różne katalogi domowe). Mam nadzieję, że masz pod ręką ostatnią kopię zapasową. Powodzenia.
Frédéric Hamidi

Istnieją programy sprawdzające system pod kątem odpowiednich uprawnień i własności pliku. Myślę, że tripwire jest lub był wczesny. Jeśli nie masz wielu użytkowników, możesz być w stanie uratować sytuację, po prostu otrzymując raport i / lub naprawę z takiego narzędzia.
minopret

Przeczytaj także wielką radę poniżej, która brzmi: „nie reaguj w żaden sposób, który pogorszyłby sytuację” i „nie zakładaj najgorszego”. Albo pamiętaj o tych ważnych ogólnych krokach rozwiązywania problemów przy użyciu żartu: Operator awaryjny: „Nie panikuj, czy jesteś pewien, że twój przyjaciel nie żyje?” Dzwoniący: BANG „Tak, niestety, on nie żyje”.
minopret

W większości przypadków w normalnym systemie powinieneś być w stanie określić z grupy plików, kim powinien być właściciel. Więc findwszystkie pliki należące do katalogu głównego, w których grupa nie jest odpowiednia, i wyświetl je wszystkim użytkownikom pasującym do grupy. Rejestruj awarie i usuwaj je indywidualnie.
agf

Czy uruchomiłeś to polecenie jako root? (Mam nadzieję, że nie ...)
Axel

Odpowiedzi:


7

Jednym ze sposobów na złagodzenie problemu tutaj (nie można go rozwiązać, ale pomóc ci wyjść z dziury) jest uruchomienie procesu w podobnym systemie w celu zebrania odpowiednich praw własności do plików. Rozumiem, że szanse na dokładne dopasowanie są nieco niewielkie, ale jeśli oba O / S są na tym samym poziomie z zainstalowanymi podobnymi pakietami, możesz mieć szczęście.

Po zebraniu uprawnień do pliku możesz uruchomić proces we własnym systemie, aby odczytać pliki i uprawnienia / prawa własności z dobrego i zastąpić je w twoim. Mam kilka małych domowych aplikacji na Linuksa, które właśnie to robią.

Na przykład

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 * inne rzeczy * katalog * nazwa pliku


5

Przede wszystkim zatrzymaj polecenie, jeśli nadal działa!

Teraz wszystko będzie należeć do roota, co jest dość problematyczne.

Powinieneś spróbować przywrócić informacje z najnowszej kopii zapasowej.

Ważne jest również, aby nie restartować systemu przed sprawdzeniem wszystkich uruchomionych aplikacji i uruchomieniem ich przez użytkownika podczas rozruchu. Jeśli to zrobisz, niektóre z nich mogą nie zostać poprawnie uruchomione z powodu problemów z uprawnieniami.

Powodzenia.


3

Bardzo i niezupełnie.

„Bardzo” w tym sensie, że jeśli polecenie rzeczywiście zostało wykonane, twoje bezpieczeństwo jest zepsute. Nie wiesz teraz, które ścieżki mają właścicieli i komu należy zezwolić.

„Niezupełnie” w tym sensie - czy na pewno byłeś rootem, kiedy to zrobiłeś i czy polecenie dobiegło końca? Jeśli anulowałeś go, jak tylko go zobaczysz, możesz mieć szczęście, a naprawa może być niska. Jeśli nie byłeś rootem, to polecenie nie powinno być w stanie tego zrobić, chyba że zrobiłeś coś podobnego sudo ....

Nie ma na to jednego lekarstwa. Jeśli masz kopię zapasową, możesz ją przywrócić. Może być konieczne sprawdzenie własności kopii zapasowej i zastosowanie ich. Jeśli korzystasz z kontrolera rootkitów (powiedzmy rkhunter), może on zawierać listę najbardziej podstawowych własności i być może będzie w stanie go naprawić. (Niezbyt prawdopodobne).


2

Przynajmniej w Fedorze komenda RPM ma opcje --setpermsi --setugidsza ich pomocą można naprawić większość plików należących do systemu, takich jak rpm --setugids -a. Aby (nieco) naprawić pliki dla każdego użytkownika, możesz zrobić dla każdego z nich chown -R user /home/user. Prawdopodobnie pozostaną resztki, które nie zostały naprawione przez powyższe, szczególnie jeśli masz jakiś serwer (web, ftp, inne), będą musiały być przetwarzane jeden po drugim.

Prawdopodobnie inne dystrybucje mają podobne mechanizmy. Lub wykonaj pełne odświeżenie (tj. Zainstaluj wszystko od nowa, jakby to było jakoś uszkodzone. OK, to było jakoś uszkodzone).

[Tak, jest to po raz kolejny dość okrutny sposób nauczania niczego niepodejrzewających użytkowników uniksowego podejścia do każdego polecenia przed naciśnięciem ENTER i oszczędnego korzystania z roota . Uważaj się za nauczonego.]


setuidi setgiduprawnienia należy ustawić ręcznie. rpmnie przywróci ich.
jnas

1

Jeśli używasz systemu OSX Apple oferuje funkcję przywracania w Narzędziach dyskowych, aby rozwiązać ten bardzo problem. Jeśli używasz dystrybucji Linux, jestem całkiem pewien, że będziesz musiał ręcznie przywrócić wszystkie uprawnienia. W obu przypadkach uderz w ręce i nie rób tego więcej


Prawdopodobnie nie jest w stanie w pełni odzyskać systemu Linux. Nawet jeśli możesz uruchomić system, prawdopodobnie przeoczyłeś coś, co może później cię ugryźć, albo jako niestabilność, albo jako luka w zabezpieczeniach. Powiedziałbym, że prawdopodobnie konieczne jest przywrócenie z kopii zapasowej lub odbudowy.
Chris Kuehl

0

Niestety nie wiem, jak to cofnąć, ale prawdopodobnie możesz zostawić pliki systemowe jako własność root i przywrócić wszystkie pliki w $ HOME, które są Twoją własnością (i zrobić to samo dla wszystkich użytkowników system). W tym momencie możesz naprawić uprawnienia i / lub właściciela dla każdego pliku, który nie znajduje się w katalogu $ HOME, który go potrzebuje, gdy się pojawi. Tak, to jest ból, ale nie sądzę, że można to łatwo naprawić. Tak i tak bym zrobił.


0

Powiedziałbym, że jak mówisz, jesteś „pieprzony”. Najlepszym sposobem (i najbardziej wydajnym) jest ponowna instalacja i przywracanie krytycznych elementów z dobrych kopii zapasowych. Niestety nie jest to sytuacja, która generalnie ma szybkie rozwiązanie ze szczęśliwym zakończeniem. Powodzenia!

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.