Chmod / 777 falsch eingestellt. Probleme?

33

Ich habe versucht zu rennen, chmod -R 777 ./aber am Ende habe ich meine gesamte Maschine getippt chmod -R 777 /und eingestellt 777. Was kann schon schief gehen? Wie kann ich es reparieren?

Vinnycx
quelle
Was kann im System schief gehen? wird es aufhören zu arbeiten?
Vinnycx
6
Natürlich gibt es Probleme. SSH wird zum Beispiel fehlschlagen.
11.
2
SSH wird beendet, wenn das Basisverzeichnis von der Welt gelesen werden kann. Wenn Sie alles auf 777 setzen, tun Sie alles als root.
11.
3
Siehe auch serverfault.com/questions/364677/why-is-chmod-r-777-destructive. Hier erfahren Sie mehr darüber, was schief gehen wird.
Gilles 'SO- hör auf böse zu sein'

Antworten:

46

Probleme? Ja, viele. Kann es repariert werden? Sicher. Schneller als eine 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 /etcund wieder her /var. Für /usr/local, können Sie wahrscheinlich Berechtigungen manuell wiederherstellen. Für /homeund /srvmüssen Sie die Berechtigungen aus Backups wiederherstellen.

Wenn dies ein System mit mehreren lokalen Benutzern ist, beachten Sie, dass einige Dateien, die für die Welt lesbar sind, einige Dinge enthüllt haben, die vertraulich hätten bleiben müssen.

  • Ihre Kennwortliste ist jetzt kompromittiert: Lokale Benutzer hatten Zugriff auf die gehashte Kennwortliste und konnten versuchen, sie brachial zu erzwingen. Benachrichtigen Sie Ihre Benutzer darüber.
  • Alle privaten Benutzerdaten (SSH-Schlüssel, gespeicherte Kennwörter, E-Mail-Nachrichten, was auch immer Benutzer als vertraulich erachten) wurden allen lokalen Benutzern zugänglich gemacht. Benachrichtigen Sie Ihre Benutzer darüber.

Wenn Sie wirklich versuchen möchten, das Problem zu beheben (eher eine Lernübung als eine praktische Wiederherstellungsroute), stellen Sie zunächst die Berechtigungen einiger Dateien wieder her. Beachten Sie, dass die meisten Dateien jetzt zu offen sind, einige jedoch nicht die erforderlichen Setuid- Bits enthalten. 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 funktionsunfä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 /usrkö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 ausführen apt-get --reinstall install
  • Wenn Sie Arch Linux verwenden, können Sie es ausführen 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 gemountet /newarch.

Bei Dateien unter /etcund /varwird dies nicht funktionieren, und es bleiben so viele davon wie sie sind: Sie müssen die Berechtigungen für eine funktionierende Installation replizieren. Für Dateien unter /srvund /homemüssen Sie sowieso von Backups wiederherstellen. Wie Sie sehen können, können Sie auch eine Neuinstallation durchführen.

Gilles 'SO - hör auf böse zu sein'
quelle
6
Einverstanden, wenn Sie kein Experte sind, haben Sie fast keine Chance, diese Situation zu reparieren, ohne eine vollständige Neuinstallation oder Wiederherstellung von Backups durchzuführen. Es ist zu gefährlich, das System so zu lassen, wie es ist.
Arrowmaster
3
Wenn es Benutzer im System gibt, bedaure ich sie.
Jürgen A. Erhard
19

Sie werden es vielleicht zuerst nicht bemerken, aber viele Dinge können und werden schief gehen. Das Hauptproblem ist, dass das gesamte Sicherheitsmodell für das gesamte System fehlerhaft ist. Es ist, als hätte man einen Körper ohne Haut, Organe in der Luft. Es muss infiziert werden, weil es nicht so funktionieren soll. Auch wenn es für ein paar Minuten zu funktionieren scheint, müssen Sie dies bereinigen.

Der beste Weg wäre, von vorne zu beginnen. Auf diese Weise reduzieren Sie Ihr Risiko erheblich und erzielen in kürzerer Zeit ein saubereres Ergebnis. Wenn Sie über ordnungsgemäße Sicherungen verfügen, sollte dies keine allzu große Erfahrung sein.

Wenn Sie versuchen, es zu bereinigen, sollten Sie in erster Linie den Paket-Manager Ihrer Distribution anweisen, ALLES auf dem System neu zu installieren, einschließlich des Überschreibens von Konfigurationsdateien. Verwenden Sie dann ein beliebiges Überprüfungssystem, um die Dateien zu überprüfen und sicherzustellen, dass keine von ihnen als Dateien mit ungewöhnlichen Berechtigungen gekennzeichnet ist. Arbeiten Sie sich als Nächstes durch Benutzer-Home-Verzeichnisse und setzen Sie alles en masse auf vernünftige Berechtigungen zurück. Gehen Sie dann die wenigen Dinge durch, die über besondere Berechtigungen verfügen sollten (wie z. B. SSH-Schlüsseldateien). Führen Sie zum Schluss eine vollständige Systemsuche für alle mit 777 gekennzeichneten Elemente durch, und gehen Sie die Liste durch (sie sollte klein sein, wenn Sie die anderen Schritte gründlich ausgeführt haben) und arbeiten Sie sie nacheinander ab, um sicherzustellen, dass sie so sind, wie sie sind.

Caleb
quelle
Aber was kann, abgesehen von der Sicherheit, bei Anwendungen schief gehen? Werden sie aufhören zu arbeiten? Oder ist Sicherheit hier das größte Problem?
Vinnycx
Sicherheit ist das größte Problem, aber viele Programme, insbesondere hinter den Kulissen, wie das Protokollieren von Daemons, Cron usw., schlagen aus verschiedenen Gründen fehl, anstatt sich in die gefährliche Situation zu begeben, die sie sehen.
Caleb
cron hört nur wegen 777 auf zu arbeiten?
Vinnycx
1
Es gibt verschiedene Cron-Systeme, aber kein Cron mit Selbstachtung sollte Jobs in Roots Cron ausführen, wenn die Crontab-Datei von der Welt beschreibbar ist! Auch der Mail-Daemon, der Cron-Benachrichtigungen verarbeitet, sollte sich aus anderen Gründen beschweren.
Caleb
10

LÖSUNG: Ich habe dies in CENTOS getestet

Dieser Typ hat meinen Job gerettet! (Sie müssen irgendwie zugreifen)

http://www.adminlinux.org/2009/07/how-to-restore-default-system.html

1) So setzen Sie UIDs und GIDs für Dateien und Verzeichnisse zurück:

for u in $(rpm -qa); do rpm --setugids $u; done

2) Zu Berechtigungen für Dateien und Verzeichnisse

for p in $(rpm -qa); do rpm --setperms $p; done

Ändern Sie dann die Berechtigungen für diese Dateien manuell:

# ll /etc/ssh/
# chmod 600 /etc/ssh/ssh_host_rsa_key
# chmod 600 /etc/ssh/ssh_host_dsa_key
# service sshd restart
saul scv
quelle
5

Einige sicherheitsbewusste Programme werden nicht gestartet, wenn bestimmte Dateien zu viele Berechtigungen haben. Wie @ceving sagte, sshdist das typischste davon.

Die Hauptsache, die schief gehen kann, ist jetzt, dass jeder Benutzer jede Datei auf Ihrem System öffnen, lesen und schreiben kann . Die beiden Gründe, warum dies so schlimm ist, sind: A) Wenn ein böswilliger Benutzer durch einen Exploit oder eine Fehlkonfiguration die Kontrolle über Ihr System erlangt, kann er / sie jetzt alles auf Ihrem System ändern, und B) Sie können alles löschen, was Sie möchten, auch wenn Sie sind kein Root-Benutzer, haben also die meisten Schutzmaßnahmen, die erforderlich sind, um nicht als Root ausgeführt zu werden, aufgehoben.

Wenn Sie die Berechtigungen zuvor nicht gesichert haben, befinden Sie sich in einer schwierigen Situation. Möglicherweise können Sie ein Skript erstellen, das eine Liste von Berechtigungen von einem frisch installierten System "abruft" und diese dann auf alles auf Ihrem System "anwendet". Ein solches Skript habe ich allerdings nicht zur Hand.

LawrenceC
quelle
Aber was kann, abgesehen von der Sicherheit, bei Anwendungen schief gehen? Werden sie aufhören zu arbeiten? Oder ist Sicherheit hier das größte Problem?
Vinnycx
Nur die wenigen Anwendungen, die sich weigern, zu starten, wenn die Berechtigungen zu locker sind. Sicherheit ist die größte Sorge. Es ist aber auch Systemstabilität. Wenn Sie jetzt rm -rf /als normaler Benutzer arbeiten, kommt Ihr System zum Stillstand.
LawrenceC
Welche Anwendungen funktionieren möglicherweise nicht mehr?
Vinnycx
Abgesehen von SSH? Was kann sonst noch scheitern? Ich muss jetzt, wenn ich das System für eine Weile so verlassen kann.
Vinnycx
5
@ Vinnycx: Nein, kannst du nicht. Es ist kaputt. Sie sollten es zu einer Priorität machen, um es zu beheben. Andernfalls können Sie davon ausgehen, dass Ihre Dienste nacheinander versagen und Hacker Ihre Daten verarbeiten. Das Verlassen von / * @ 777 ist keine Option.
Caleb