Niedawno wpisałem polecenie
sudo chmod 777 -R /
po tym niektóre rzeczy jak
sudo -i
nie działają normalnie. Zastanawiam się więc, czy jest jakiś sposób, aby zresetować uprawnienia do folderu do ich oryginalnego stanu?
ubuntu
permissions
chmod
Braiam
źródło
źródło
Odpowiedzi:
Z tej niechlujnej sytuacji można wrócić.
Uruchomiłem ponownie ten sam rodzaj problemu (jakiś błąd w pisanym przeze mnie skrypcie) i rozwiązałem go, ale musisz poprosić o pomoc eksperta. Bądź bardzo ostrożny!
Po pierwsze, moja sytuacja była łatwiejsza do rozwiązania, ponieważ miałem system podwójnego rozruchu (Ubuntu i moją starą instalację Fedory), ale uruchamianie systemu operacyjnego z dysku CD / DVD lub klucza USB powinno robić to samo.
Najpierw zamontowałem takie systemy plików w ten sposób (nie zapomnij utworzyć punktów montowania):
Następnie uruchomiłem następujące polecenie (mój problem był tylko w kilku - krytycznych - katalogach), aby skopiować uprawnienia z działającego systemu do bałaganu (w rzeczywistości, w moim przypadku, zainstalowałem system Ubuntu w Virtual Box pod Fedorą i mam tam uprawnienia):
A potem uruchomiłem skrypt restoreperms.sh.
Ponownie mogłem uruchomić system Ubuntu.
Zawartość pliku restoreperms.sh będzie wyglądać następująco:
Nie przetestowałem tego, ale musi działać również dla właścicieli i grup właścicieli. Coś jak:
Oczywiście musisz tutaj uważać, aby UID i GID były takie same w obu systemach, ale dla użytkowników i grup związanych z systemem nie powinno to stanowić problemu.
Edytować:
Ponadto ustawienie właściciela anuluje flagi SGID i SUID , co powoduje dziwne problemy (na przykład nie będziesz w stanie wykonać sudo, chyba że zezwolenie to 4755). Musisz i powinieneś ustawiać uprawnienia PO ustawieniach właścicieli. ZAPISZ pełne informacje o uprawnieniach do plików wraz z danymi właściciela.
Rk:
Teraz mam te polecenia w koledze, uruchamiane codziennie (może być tygodnie) w celu zachowania tych informacji. Ułatwi to rozwiązanie następnym razem, ale oczywiście, ponieważ mam to teraz, nigdy więcej się nie powtórzy. ;-) Coś takiego:
0 12 * * * /usr/bin/find / -exec /usr/bin/stat --format="/bin/chmod %a %n" {} \; |/bin/bzip2 -c > /tmp/restore_chmod.$(/bin/date +%w).sh.bz2
0 13 * * * /usr/bin/find / -exec /usr/bin/stat --format="/bin/chown %U:%G %n" {} \; |/bin/bzip2 -c > /tmp/restore_chown.$(/bin/date +%w).sh.bz2
Właściwe (połączone) polecenie jest bardziej jak:
Należy pamiętać, że może być wymagana dodatkowa ostrożność w celu uwzględnienia nawiasów w nazwach plików (na przykład w ustawieniach regionalnych) i że chown może po cichu rozbroić bity setuid i setgid ustawione przez chmod. W tym drugim przypadku, który złamałby, powiedzmy, / bin / su i / usr / bin / sudo, być może będziesz musiał zamienić kolejność wykonywania klauzul powyżej.
źródło
Po odzyskaniu sudo lub wybraniu trybu odzyskiwania przy rozruchu
Jest to możliwe, aby odzyskać cały system za pomocą debsums że sprawdzenia zgodności integralności plików i uprawnień.
ze strony podręcznika:
lub ograniczony do określonej ścieżki, np .
/usr
:lub ograniczony do wielu zestawów ścieżek, np .:
/sbin /etc /var
źródło
chmod a-x /bin/ping
idebsums -c
nie zgłosiłbym tego pliku.Zawsze uważaj na to, co prowadzisz jako sudo.
Wątek wyjaśnia, że możesz ręcznie ustawić niektóre uprawnienia z powrotem, a skrypt w tym pomaga, ale nadal jest to duże zadanie. Zamiast tego postępuj zgodnie ze wskazówkami na bieżniku, aby zapisać zainstalowane pakiety (oznaczenia) i ponownie zainstalować system operacyjny, a także zastosować zapisane zapisy pakietów, aby odzyskać aplikacje.
źródło
O ile mi wiadomo, tylko pakiety Systemu V i RPM oferują polecenie naprawy uprawnień do plików. W systemie V (Solaris) jest to pkgchk, z RPM-ami to rpm --setperms.
Niestety wydaje się, że takie polecenie nie istnieje dla pakietów Debian / Ubuntu - ale mogę się tutaj mylić.
Ale nawet przy pomocy tych poleceń przywrócenie systemu do normalnego stanu nie jest trywialne, a naprawiając go, możesz łatwo spowodować nowe szkody w systemie - jeśli nie będziesz ostrożny.
Poza tym Józef powiedział, nie jesteś pierwszy i nie będziesz ostatnim, który wprowadzi takie polecenie. Ale sam pomysł, aby zmienić uprawnienia do pliku na 777 w systemie Unix, jest silnym sygnałem, że nie masz zbyt dużego doświadczenia z tego rodzaju systemem. W tej sytuacji najlepiej jest wykonać kopię zapasową potrzebnych danych (katalogów domowych, plików konfiguracyjnych, plików poczty?) I spróbować nowej instalacji.
I powinieneś bardzo, bardzo ostrożnie przywracać - uszkodzone - pliki kopii zapasowych.
Powodzenia!
PS: Zastanawiam się tylko, jaki problem chciałeś rozwiązać?
źródło
Wow, zabiłeś to. Nie żyje! Spróbuj zalogować się i używać komputera jako root (ponieważ go włączyłeś), a następnie zmień członkostwo grupy root na użytkowników. To może, ale nie musi działać, ponieważ nigdy wcześniej tego nie próbowałem, ale warto spróbować.
źródło
Nie można cofnąć
chmod
operacji; przynajmniej nie w sensie cofania się do poprzedniego ustawienia, czego wymaga ta sytuacja. Prawdopodobnie można cofnąćchmod
operację,chmod
przywracając każdy plik i katalog do oryginalnego trybu - ale nie wszystkie są takie same; ustalenie oryginalnych trybów jest trudne (jak omówiono w innych odpowiedziach).źródło