Ich habe versucht, chmod -R 777 ./
auszuführen aber am Ende habe ich chmod -R 777 /
eingegeben und setzen Sie 777
auf meiner gesamten Maschine. Was kann schon schief gehen? Wie kann ich es beheben?
Akzeptierte Antwort:
Probleme? Ja, viele. Kann es repariert werden? Sicher. Schneller als Neuinstallation? Wahrscheinlich nicht.
Meine Empfehlung ist eine Neuinstallation. Erstellen Sie eine Sicherungskopie des vorhandenen Systems und stellen Sie die Paketliste und den Inhalt der Dateien in /etc
wieder her und /var
. Für /usr/local
, können Sie Berechtigungen wahrscheinlich manuell wiederherstellen. Für /home
und /srv
, müssen Sie die Berechtigungen aus Sicherungen wiederherstellen.
Wenn dies ein System mit mehreren lokalen Benutzern ist, beachten Sie, dass einige Dateien, die weltweit lesbar sind, einige Dinge enthüllt haben, die vertraulich bleiben sollten.
- Ihre Passwortliste ist jetzt kompromittiert:Lokale Benutzer hatten Zugriff auf die gehashte Passwortliste und könnten versuchen, sie brutal zu erzwingen. Informieren Sie Ihre Benutzer darüber.
- Alle privaten Benutzerdaten (SSH-Schlüssel, gespeicherte Passwörter, E-Mail, was auch immer andere Benutzer als vertraulich betrachten) wurden allen lokalen Benutzern offengelegt. Informieren Sie Ihre Benutzer darüber.
Wenn Sie wirklich eine Reparatur versuchen möchten (eher eine Lernübung als ein praktischer Wiederherstellungsweg), stellen Sie zuerst die Berechtigungen einiger Dateien wieder her. Beachten Sie, dass, obwohl die meisten Dateien jetzt zu offen sind, einige notwendige Setuid-Bits fehlen. Hier sind Schritte, die Sie vor allem anderen unternehmen sollten. Beachten Sie, dass dies keine vollständige Liste ist, sondern nur ein Versuch, das System kaum funktionsfähig zu machen.
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
Dann müssen Sie alle Berechtigungen überall wiederherstellen. Für Dateien unter /usr
, können Sie die Pakete abhängig von Ihrer Distribution mit einem der folgenden Befehle neu installieren:
- Wenn Sie Debian, Ubuntu oder eine andere auf APT basierende Distribution verwenden, können Sie
apt-get --reinstall install
ausführen - Wenn Sie Arch Linux verwenden, können Sie
pacman -S $(pacman -Qq --dbpath /newarch/var/lib/pacman) --root /newarch --dbpath /newarch/var/lib/pacman
, vorausgesetzt, Sie befinden sich auf einer Live-CD und Ihre Arch-Installation ist unter/newarch
gemountet .
Für Dateien unter /etc
und /var
, das wird nicht funktionieren, da viele von ihnen so bleiben wie sie sind:Sie müssen die Berechtigungen auf einer funktionierenden Installation replizieren. Für Dateien unter /srv
und /home
, müssen Sie sowieso aus Backups wiederherstellen. Wie Sie sehen können, können Sie genauso gut neu installieren.