GNU/Linux >> Znalost Linux >  >> Linux

Špatně nastavený Chmod / 777. Problémy?

Zkoušel jsem spustit chmod -R 777 ./ ale skončilo to zadáním chmod -R 777 / a nastavte 777 na celém mém stroji. Co se může pokazit? Jak to mohu opravit?

Přijatá odpověď:

problémy? Ano, hodně. Dá se to opravit? Tak určitě. Rychlejší než přeinstalace? Pravděpodobně ne.

Moje doporučení je přeinstalovat. Udržujte zálohu stávajícího systému a obnovte seznam balíčků a obsah souborů v /etc a /var . Pro /usr/local , pravděpodobně můžete obnovit oprávnění ručně. Pro /home a /srv , budete muset obnovit oprávnění ze záloh.

Pokud se jedná o systém s více místními uživateli, mějte na paměti, že zpřístupnění některých souborů světově čitelným odhalilo některé věci, které měly zůstat důvěrné.

  • Váš seznam hesel je nyní kompromitován:místní uživatelé měli přístup k seznamu hašovaných hesel a mohli se je pokusit vynutit. Informujte o tom své uživatele.
  • Všechna soukromá uživatelská data (klíče ssh, uložená hesla, e-maily a vše ostatní, co mohou uživatelé považovat za důvěrné) byla vystavena všem místním uživatelům. Informujte o tom své uživatele.

Pokud opravdu chcete zkusit opravu (spíše cvičení než praktický způsob obnovy), nejprve obnovte oprávnění několika souborů. Všimněte si, že zatímco většina souborů je nyní příliš otevřená, v několika chybí potřebné bity setuid. Zde jsou kroky, které byste měli udělat před čímkoli jiným. Všimněte si, že toto není vyčerpávající seznam, pouze pokus o to, aby byl systém sotva funkční.

chmod -R go-w /
chmod 440 /etc/sudoers
chmod 640 /etc/shadow /etc/gshadow
chmod 600 /etc/ssh/*_key /etc/ssh*key   # whichever matches
chmod 710 /etc/ssl/private /etc/cups/ssl
chmod 1777 /tmp /var/tmp /var/lock
chmod 4755 /bin/su /usr/bin/passwd /usr/bin/sudo /usr/bin/sudoedit
chmod 2755 /var/mail /var/spool/mail

Poté budete muset všude obnovit všechna oprávnění. Pro soubory pod /usr , můžete balíčky přeinstalovat jedním z následujících příkazů v závislosti na vaší distribuci:

  • Pokud používáte Debian, Ubuntu nebo jinou distribuci založenou na APT, můžete spustit apt-get --reinstall install
  • Pokud používáte Arch Linux, můžete spustit pacman -S $(pacman -Qq --dbpath /newarch/var/lib/pacman) --root /newarch --dbpath /newarch/var/lib/pacman , za předpokladu, že jste na Live CD a vaše instalace Arch je připojena na /newarch .

Pro soubory pod /etc a /var , to nebude fungovat, tolik jich zůstane, jak jsou:budete muset replikovat oprávnění na fungující instalaci. Pro soubory pod /srv a /home , budete stejně muset obnovit ze záloh. Jak vidíte, můžete také znovu nainstalovat.

Související:Jak zabít všechny procesy vlastněné „uživatelem“ na Centos 7?
Linux
  1. Nastavte CORS na Cloud Files

  2. .o soubory vs. .a soubory

  3. Chmod 777 do složky a veškerého obsahu

  1. Linux:Nastavte oprávnění pouze pro adresáře

  2. Jak nastavit nginx max otevřené soubory?

  3. Jak chown/chmod všechny soubory v aktuálním adresáři?

  1. Udělte oprávnění ke spuštění adresářům, ale ne souborům

  2. Je bezpečné chmod 777 všechno?

  3. Proč je chmod -R 777 / destruktivní?