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.