GNU/Linux >> Znalost Linux >  >> Linux

Rozbitý systém po Chmod -r 644 /?

Používám debian jessie a udělal jsem jednu z těch špatných chyb a rozbil svůj systém špatně napsaným příkazem a horšími chybami, které v takových situacích následují.

Při pokusu o opravu některých oprávnění jsem omylem použil chmod rekurzivně v kořenové složce:

# chmod -R 0644 /

a pak jsem si okamžitě uvědomil, že jsem se vrhl do něčeho, abych to zastavil, ale systém zamrzl a nejhorší chybou bylo těžké vypnutí systému.

Nyní si myslím, že mám nějaký problém se správcem uživatelů a po nabootování s některými zprávami „nepodařilo se spustit službu“ nemám přihlašovací jméno uživatele Gnome a nemohu se také přihlásit do konzole. A toto je to, co několikrát zabliká a pak zůstane na obrazovce:

[ ok ] Created slice user-113.slice
       Starting user manager for UID 113...  
[ ok ] Started user manager for UID 113  
[ ok ] Stopped user manager for UID 113  
[ ok ] Removed slice user-113.slice 

Přijatá odpověď:

Dobrou zprávou je, že všechna vaše data tam stále jsou. Smíšenou zprávou je, že instalace vašeho systému může nebo nemusí být obnovitelná – záleží na tom, kde chmod zastaveno.

Pro opravu budete muset zavést záchranný systém. Ze záchranného systému někam připojte svou nefunkční instalaci, řekněte /mnt . Zadejte následující příkazy:

chmod 755 /mnt
find /mnt -type d -perm 644 >/mnt/bad-permissions
find /mnt -type d -exec chmod 755 {} +

První find příkaz uloží záznam adresářů se špatnými oprávněními do souboru. Účelem je zjistit, kde byla oprávnění změněna. Druhý find příkaz změní všechny adresáře tak, aby byly veřejně přístupné.

Nyní máte systém, kde jsou všechny adresáře uvedeny v /mnt/bad-permissions a všechny soubory v těchto adresářích jsou čitelné po celém světě. Navíc soubory v těchto adresářích nejsou spustitelné. V závislosti na tom, které soubory byly ovlivněny, to může být snadno opravitelné nebo ne. Viz Špatně nastavený chmod / 777. Problémy? za co se můžete pokusit zprovoznit systém, ke kterému byste měli přidat

chmod a+x /bin/* /sbin/* /usr/bin/* /usr/sbin/* /lib*/ld-*

Ale i když se vám podaří něco zprovoznit, existuje vysoké riziko, že některá oprávnění jsou stále nesprávná, takže doporučuji přeinstalovat nový systém a poté obnovit data. Jak replikuji výběr nainstalovaných balíčků z jednoho systému Debianu do jiného? (Debian Wheezy) by měl pomoci.

Související:Jak vyprázdnit mezipaměť DNS Safari na macOS Mojave bez restartování systému?
Linux
  1. Jak provést Chmod bez /usr/bin/chmod?

  2. Spouštěcí boxy Gnome z ISO po instalaci operačního systému?

  3. Rozbité balíčky Ubuntu 16.04 po nové instalaci?

  1. Souborový systém pouze pro čtení po upgradu na 15.04 s?

  2. Návratová hodnota x =os.system(..)

  3. git vynutí obnovení indexu po přepnutí mezi okny a linuxem

  1. Budování domácí laboratoře:Sysadmin po setmění

  2. Zabránění přerušení připojení NFS před zamrznutím klientského systému?

  3. Jak snížit velikost swapu poté, co je systém již nainstalován?