GNU/Linux >> Znalost Linux >  >> Linux

Jak mohu vrátit chmod v adresáři etc?

Jedna věc se pokazila:použití sudo s tím příkazem. -R přepínač říká chmod rekurzivně nastavit oprávnění k tomuto adresáři, což je v každém případě nedoporučená akce (měli bychom to nazývat:hereze), pokud nevíte, co děláte (jakmile se mi to stalo, nevěděl jsem zadejte příkaz, ale způsobilo to vadné grafické uživatelské rozhraní a můj systém se zhroutil).

Byla to pouze oprávnění k souboru. Proč se pak celý systém zdá být úplně vyhozený?

GNU/Linux je velmi citlivý na oprávnění k souborům, protože byl vytvořen se stabilitou a zabezpečením na mysli. Totéž platí pro většinu programů spuštěných v GNU/Linuxu (tj. apache2 zruší práva roota a použije www-data , nebo podobný uživatel, a vaše 700 oprávnění by mu nedovolilo číst/zapisovat vlastní soubory).

Proč nyní nefungují žádná přihlašovací hesla?

Jak jste již zmínili, přihlašovací hesla jsou uložena v souboru /etc/passwd a pouze root (předpokládám, že jste to nezměnili) jej může číst, ale výzva k přihlášení (nebo přihlášení k uživatelskému rozhraní) používá neprivilegovaný účet, a proto nemůže soubor přečíst.

Jak ale změna oprávnění všechno ohrozila?

Jak je uvedeno výše, Linux je velmi citlivý na oprávnění souborů. Některé programy dokonce kontrolují oprávnění svých konfiguračních souborů a pokud je neočekáváte, vůbec se nespustí.

Jak mohu vrátit svůj adresář etc do dřívějšího stavu?

Pokud používáte distribuci založenou na RPM, lze to provést pomocí rpm --setperms příkaz, bylo by bolestné vracení balíčků jeden po druhém na systému podobnému Debianu apt-get --reinstall install je tvůj přítel. Mohou být k dispozici i jiná řešení, ale vyžadovalo by to funkční systém.


Podívejme se, co jste udělali, je nastavení oprávnění v celém adresáři /etc jako čtení/zápis/spouštění povoleno pouze vlastníkovi souboru/adresáře, všem ostatním odepřeno. Pokud jste zmateni oprávněními k souborům, více si můžete přečíst na Wikipedii:Tradiční oprávnění UNIX.

Důvod, proč jste vyhodili svůj systém do povětří, je ten, že mnoho procesů již nemůže číst svá nastavení a nemají přístup k /etc. Nebude snadné obnovit celý adresář /etc do předchozího stavu. Jak to udělat bude záviset na vaší distribuci, ale v podstatě to znamená přeinstalovat každý balíček, který obsahuje jakýkoli soubor v /etc.

Jako rychlou pomůcku, abyste mohli používat systém, abyste jej mohli správně opravit (přeinstalovat všechny balíčky s obsahem v /etc, jak je uvedeno výše), můžete udělat:

    # sudo find /etc -type d -exec chmod 775 '{}' \;
    # sudo find /etc -type f -exec chmod 664 '{}' \;

S těmito dvěma řádky nastavíte liberální oprávnění ve všech adresářích /etc s povoleným čtením/zápisem pro vlastníka a skupinu a pro všechny ostatní. Důvodem dvou chmod je nastavení prováděcího bitu pouze na dirs. Některé procesy si budou stěžovat nebo selžou i tak, včetně jakéhokoli spustitelného souboru v /etc, ale měli byste být schopni provést přeinstalaci, kterou jsem nastínil výše.

Uvědomte si prosím, že dokud neobnovíte původní oprávnění, bude váš systém přinejmenším v nezabezpečeném stavu.


Linux
  1. Jak změnit nastavení časového pásma v Linuxu?

  2. CentOS / RHEL :Jak obnovit ze smazaného souboru /etc/passwd

  3. Pochopení adresáře /etc/skel v Linuxu

  1. „sudo:/etc/sudoers je světově zapisovatelný“ – Jak opravit oprávnění souboru sudoers

  2. Jak ověřit syntaxi souboru /etc/ssh/sshd_config

  3. Jak mohu nastavit automatické dokončování pro příkazy Git?

  1. Jaké je spojení mezi adresáři /etc/init.d a /etc/rcX.d v Linuxu?

  2. Rozdíl mezi /etc/hosts a /etc/resolv.conf

  3. Jak nastavit /etc/issues, aby zobrazoval IP adresu pro eth0