Jakiś powrót z tego? sudo chmod 600. *

8

OSTRZEŻENIE - NIE URUCHAMIAJ WYMIENIONEGO KOMENDY

Wygląda więc na to, że zrobiłem coś głupiego, delikatnie mówiąc. Próbowałem zmienić uprawnienia do kilku plików w katalogu, z których wszystkie zaczynały się .od odczytu / zapisu tylko dla sudo / root.

Wydaje mi się, że moja próba zmiany kilku plików naraz zrobiła coś okropnie globalnego. Będąc w katalogu (nie byłam w katalogu głównym), biegnąłem sudo chmod 600 .*i dobrze, teraz piszę to z mojego telefonu ... W tej chwili mam otwarte okno terminala, ale jestem całkiem pewien, czy laptop pójdzie spać, jestem całkowicie skończony. Zabawne, że oznacza to, że pytanie jest pilne.

Aha, i wydaje się, że to zmieniło uprawnienia cholernie blisko wszędzie, jak się domyślam. Nie mogę nawet uruchomić poleceń lslub cd ... Próba błędu cd /home/brianlub cd ~podanie błędu bash: cd: /home/brian: Permission Deniedi każda próba sudopolecenia mówi tylkobash: /usr/bin/sudo: Permission Denied

Obawiam się, że uruchomię się ponownie, nie mam pojęcia, czy coś jest wbudowane w odzyskiwanie po czymś tak głupim, ale pomyślałem, że spróbuję zapytać tutaj przed pogorszeniem sytuacji. Jestem całkiem nowym Linuksem, ponieważ mój główny system operacyjny przekonwertował i ostatnio trochę go popierałem, ale och, ten trochę mnie gryzie. Wszelkie przemyślenia na temat rzeczy do spróbowania byłyby niezmiernie docenione.

EDYCJA: Chciałem wyjaśnić, w jaki sposób / gdzie to polecenie zostało wykonane. Zostało to wykonane z /.atx $dowolnego katalogu, ale więcej szczegółów poniżej.

Gdy byłem zalogowany jako moja zwykła nazwa użytkownika brian, miałem otwarty terminal, /.atxktóry zawierał trzy pliki tylko tekstowe typu konfiguracyjnego. Każda nazwa pliku zaczyna się od .. Ten katalog / nazwa / pliki nie są częścią wspólnego pakietu, tylko arbitralny zestaw konfiguracji, które programowo poruszałem. Pliki zawierały informacje o ciągach połączenia z serwerem SQL i po prostu chciały je częściowo zasłonić.

Brian Jorden
źródło
Bez opisu, w którym katalogu byłeś, zgaduję, że /rootnie / byłeś w nim, kiedy to zrobiłeś (z tego, co widzę w twoim pytaniu), co oznacza, że ​​twój .*globalny przechwycony /rootfolder ( .odniesienia do bieżącego katalogu roboczego) wraz ze wszystkimi plikami / katalogami które zaczynają się od wiodącej kropki. Nie jestem pewien, czy istnieje sposób, aby to zmienić w systemie, ale prawdopodobnie można uruchomić komputer z USB na żywo i stamtąd cofnąć. Nie traktuj tego jednak jako 100% odpowiedzi, tylko myśl.
Sergiy Kolodyazhnyy
Doceń przemyślenia i opinie w obu kierunkach i weźmie je pod uwagę w zależności od tego, jak się potoczy. To naprawdę po prostu głupie. Zamierzam zaktualizować główny tekst o szczegóły, z którego uruchomiłem polecenie (częściowo dlatego, że jestem tak zdezorientowany, że nie wydawało się to wtedy niebezpieczne)
Brian Jorden
4
Przyjmuję założenie, że .*twoje polecenie rozszerzyło się ..o katalog nadrzędny katalogu, w którym byłeś. Na przykład, gdybyś tam był, /home/brianuprawnienia /homebyłyby ustawione na 600 i nie miałbyś uprawnienia do przeglądania /homekatalogu. Czy możesz w swoim otwartym terminalu wykonaćls -ld /*
Charles Green
2
Można próbować przywrócić uprawnienia zobaczyć askubuntu.com/questions/43621/... . Jest tam kilka skryptów, ale opublikowałem metodę przy użyciu apt-get z trybu odzyskiwania (którą wolę od skryptów), wybierz swój. Ponieważ nie możesz używać sudo, będziesz musiał uruchomić system w trybie odzyskiwania. wiki.ubuntu.com/RecoveryMode pamiętaj o ponownym zamontowaniu / rx (patrz wiki)
Panther

Odpowiedzi:

3

Uff, rekonwalescencja tutaj była właściwie płynniejsza niż się spodziewałem i wszystko znów wydaje się być w całkiem niezłej formie.

Ogromne podziękowania dla @CharlesGreen za wyjaśnienie, w jaki sposób to polecenie rozszerzyło katalog. Również dzięki @Panther za informacje na temat przejścia do trybu odzyskiwania w przypadku nieco pokrewnego problemu. (jeśli oboje chcesz ponownie udostępnić swoje komentarze jako odpowiedzi, głosuję za nimi)

Na szczęście, w przeciwieństwie do połączonego postu, wydaje się, że miało to bardzo proste rozwiązanie. Wydaje się, kiedy wpadłem sudo chmod 600 .*polecenia tylko z jednego katalogu pod /to rozszerzył .*część aż do prawdziwych uprawnień zmieniających katalogu głównego .z /powodując co drugi uprawnienie do przewrócić.

„Poprawka” polegała na tym, aby uruchomić komputer w trybie odzyskiwania, ponownie zamontować dysk w trybie odczytu / zapisu, przechodząc do głównego roota ( cd /), a następnie chmod +rx .. Po ponownym uruchomieniu wszystko wygląda na normalne.

Morał tej historii, wykonanie polecenia .*może przynajmniej czasami wpłynąć na katalog PONAD bieżący. Chciałem wpływać tylko na pliki, które zaczęły się od .... ups.

Ogromne podziękowania dla wszystkich, którzy skomentowali i pomogli.

Brian Jorden
źródło
1
Prawdopodobnie wpłynęło to na katalog nadrzędny, ponieważ ..pasuje do .*glob.
Cthulhu
1
To kolejny powód, by użyć rozsądniejszej powłoki. Zsh, na przykład, domyślnie nie obejmuje .lub ..jest rozszerzany .*.
muru
1

„Poprawka” polegała na tym, aby uruchomić komputer w trybie odzyskiwania, ponownie instalując dysk w trybie odczytu / zapisu, przechodząc do głównego katalogu głównego (cd /), a następnie chmod + rx .. Po ponownym uruchomieniu wszystko wygląda na powrót do normalna.

Dla przyszłych czytelników, którzy mogą uznać to za przyjętą odpowiedź, istnieją obawy związane z chmod +xrozwiązaniem jako rozwiązaniem ogólnym. Wydaje się, że to konkretne pytanie było katalogiem osobistym użytkowników, więc niektóre z poniższych obaw mogą być niskie, ale jeśli zostało to zastosowane do serwera biznesowego i wpłynęło na wielu użytkowników lub inne katalogi danych, rozwiązanie nie jest sugerowane.

Z drugiej strony krok ten pozwoliłby użytkownikowi odzyskać dostęp do plików, dzięki czemu można je skopiować na nośnik kopii zapasowej, aby zapobiec dalszej utracie. I na koniec dnia jest to główny cel podczas odzyskiwania danych.

Największym problemem jest to, że oryginalne pliki mogły mieć określone uprawnienia, których obecnie brakuje. Niektóre programy - szczególnie ssh - wymuszają uprawnienia do plików, aby dodatkowo zapewnić ich bezpieczeństwo i nie będą działać, jeśli +rwzezwolenie zostanie ustawione na jego folder i pliki.

Innym problemem jest to, że jeśli zostanie to zastosowane w /folderze root ( ) rekurencyjnie, będą inne pliki, które mogą być otwarte dla każdego w systemie do przeglądania i modyfikowania. W otoczeniu biznesowym, w którym serwer może zawierać poufne dane (dane PCI / finansowe lub opieka zdrowotna / HIPAA), dostęp ten może prowadzić do ustaleń audytu i następstw.

W środowisku osobistym / domowym odzyskiwanie jest prawdopodobnie całkowicie akceptowalne. Pamiętaj tylko, że niektóre rzeczy mogą zostać po cichu złamane lub działać dziwnie.

W środowisku biznesowym można użyć tego odzyskiwania do odzyskania dostępu do danych, ale ostatecznie każda taka dramatyczna zmiana powinna zostać rozwiązana poprzez ponowną instalację serwera i odzyskanie z kopii zapasowej.

( Masz aktualną kopię zapasową, prawda? ;-) )

dan_linder
źródło
1
Głosowaliśmy dalej, ponieważ jest tu kilka ogólnie przydatnych porad / informacji. W mojej szczególnej sytuacji miałem szczęście, że jedyne uprawnienia, które zostały zmienione, znajdowały się bezpośrednio wewnątrz /i nie spadały kaskadowo do innych katalogów. Warto również zauważyć, że był to tylko mój osobisty laptop i chociaż mogłem stracić część dnia pracy (jeszcze nie pchałem git push), byłoby to bardzo kłopotliwe i irytujące, aby ponownie zainstalować mojego „użytkownika” związanego Aplikacje. Gdyby był to jakikolwiek serwer, generalnie zgodziłbym się, mniej czasu i wysiłku, aby po prostu wyczyścić / odbudować.
Brian Jorden,