Zobacz także:
Dlaczego „chmod -R 777 /” jest destrukcyjny?
Zmieniłem rekurencyjnie uprawnienia do plików w katalogu głównym /
poprzez wykonanie sudo chmod -R / 777
, a potem mój system nie będzie rozruchowy (Dostaję dużo „Permission denied” błędy).
Proszę pomóż.
permissions
ubuntu-10.04
boot
Marcin
źródło
źródło
Odpowiedzi:
Patrzysz na przegraną sprawę. Zapisz potrzebne dane i ponownie zainstaluj system operacyjny.
źródło
/etc
,/var/www
zawartość serwera WWW i bazy danych. Weź inny dysk twardy, włącz go jako podstawowy i zainstaluj. Pozwala to zachować drugi dysk jako kopię zapasową, dopóki nie będzie można go przenieść.Wiem, że dpkg przechowuje uprawnienia w bazach danych i znalazłem następujący skrypt google, który może pomóc.
Edycja: faktycznie rzuciłem okiem na skrypt i wygląda na to, że brakuje mu trochę magii, która przechodzi z PERMS do MODE, np. Dpkg -c daje na przykład „-rw-r - r--”, ale chcesz 0644, jestem teraz w pracy, więc nie jestem pewien, czy mam czas na konwersję w tej chwili, ale mogę wrócić później, jeśli nikt inny nie wskoczył, aby dodać ten fragment.
Jest tutaj skrypt , który wygląda interesująco
źródło
Z takiej nieuporządkowanej sytuacji można wrócić bez ponownej instalacji systemu. Dokładniej, uruchamiając nowy system z klucza USB lub w Virutal Box (lub tak), jeśli masz system podwójnego rozruchu.
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 uruchomienie systemu dla klucza USB (lub może CD / DVD) powinno zrobić to samo.
MPOINT = / mount / ubuntu
Najpierw zamontowałem swoje systemy plików w ten sposób (nie zapomnij utworzyć punktów montowania): mount / dev / ubuntu / root $ MPOINT mount / dev / ubuntu / home $ MPOINT / home
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):
znajdź / etc / usr / bin -exec stat --format "chmod% a $ {MPOINT}% n" {} \; > /tmp/restoreperms.sh
A potem uruchomiłem skrypt restoreperms.sh.
Byłem w stanie ponownie uruchomić na 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:
znajdź / etc / usr / bin -exec stat --format 'chown% U:% G $ {MPOINT}% n' {} \; > /tmp/restoreperms.sh^
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.
Rk:
Ważną rzeczą jest synchronizacja dysku instalacyjnego z używaną wersją lub przynajmniej praca z bieżącą wersją Ubuntu. Teraz mam te polecenia w koledze, uruchamiane codziennie (może być tygodnie), aby zachować te informacje. Ułatwi to rozwiązanie następnym razem, ale oczywiście, skoro mam to teraz, nigdy więcej się nie powtórzy. ;-) Coś takiego:
EDYCJA: aby obsługiwać łącza, połączone polecenie to:
/usr/bin/find / -exec /usr/bin/stat --format="[ ! -L {} ] && /bin/chmod %a %n" {}
źródło
Zmodyfikowałem skrypt z góry i wygląda to tak:
źródło
Zgadzam się z blueben, po prostu ponowna instalacja może być szybsza niż analiza, który plik / katalog potrzebuje uprawnień. Ale jeśli ponowna instalacja nie jest opcją, oto pomysł:
find / | xargs stat -c 'chmod %a "'%n'"' > /tmp/chmod.sh
chmod.sh
na komputer z niewłaściwymi uprawnieniamichmod +x /tmp/chmod.sh && /bin/bash /tmp/chmod.sh
źródło
ERRATUM do mojego postu opublikowanego jako użytkownik user100740: aby obsługiwać linki, połączone polecenie to:
źródło
Jeśli nadal możesz uruchomić
/usr/sbin/synaptic
, często można to naprawić.Posortuj pakiety według stanu (zainstalowane pakiety u góry), wybierz wszystkie zainstalowane pakiety, kliknij prawym przyciskiem myszy i wybierz ponownie zainstaluj. Następnie zastosuj, który poprosi
dpkg
o ponowne rozpakowanie wszystkich plików dla tych pakietów. (Utracisz wszelkie lokalne modyfikacje (ale nie zmiany pliku konfiguracyjnego).)Może to nie wszystko naprawić.
Inną rzeczą jest to, że jeśli wejdziesz
/var/cache
, możesz zadzwonićdpkg -x <package name> /
po każdy zainstalowany pakiet, a następnie zadzwonićdpkg --reconfigure -a
. Ponadto, jeśli używasz Ubuntu, możesz dokonać aktualizacji dist, która często naprawia wiele błędów (zakładając, że nie masz jeszcze najnowszej wersji). Zasadniczo, gdy próbuję naprawić taki błąd, wypróbowuję te proste poprawki, a jeśli nie tylko sprawią, że znowu będzie działać, to czas na ponowną instalację.źródło
boot z live CD. następnie uruchom powłokę, a następnie sudo -s. Następnie chmod 777 / *, a następnie chmod 600 / etc / passwd. jądro wpadnie w panikę, jeśli init się nie powiedzie, co się stanie, jeśli skrypty / lib / init nie są wykonywalne. uruchom system w trybie pojedynczego użytkownika dla Lilo Linux 1 i uruchom skrypt user102453 powyżej. Spowoduje to uruchomienie systemu sytem w celu wyświetlenia monitu. Nadal muszę uruchomić X.
źródło
Ustawienie pozwolenia na / na 755 działało dla mnie.
Więc najpierw sprawdź
Uprawnienia powinny być „drwxr-xr-x” (755).
źródło