"Chown -R root /" wie geschraubt bin ich?


8

Ich habe versehentlich den Befehl chown -R root / ausgeführt, während ich versucht habe, die Berechtigungen für den öffentlichen Ordner meiner Rails-App zu ändern. Ich habe geglaubt, dass dies die Berechtigungen für alle meine Ordner im Verzeichnis / geändert hat. Meine Frage ist also, wie gefährlich das ist. Die bessere Frage wäre, gibt es überhaupt eine Möglichkeit, dies rückgängig zu machen?


3
Dies kann nicht automatisch rückgängig gemacht werden, und ja, es hat erhebliche Auswirkungen auf Ihr System (einschließlich, aber nicht beschränkt auf die verschiedenen Home-Verzeichnisse). Ich hoffe, Sie haben ein aktuelles Backup zur Hand. Viel Glück.
Frédéric Hamidi

Es gibt Programme, die Ihr System auf entsprechende Berechtigungen und Dateibesitz prüfen. Ich denke, Tripwire ist oder war früh. Wenn Sie nicht mehrere Benutzer haben, können Sie die Situation möglicherweise beheben, indem Sie einen Bericht abrufen und / oder ein solches Tool reparieren.
Minopret

Lesen Sie auch die folgenden tollen Ratschläge, die lauten: "Reagieren Sie nicht auf eine Weise, die es noch schlimmer machen würde" und "Nehmen Sie nicht das Schlimmste an". Oder erinnern Sie sich an diese wichtigen allgemeinen Schritte zur Fehlerbehebung mit der Scherzversion: Notdienst: "Keine Panik, sind Sie sicher, dass Ihr Freund tot ist?" Anrufer: BANG "Ja, leider ist er tot."
Minopret

In den meisten Fällen sollten Sie auf einem normalen System anhand der Gruppe einer Datei erkennen können, wer der Eigentümer sein sollte. Also findalle Dateien, deren Eigentümer root ist, für die die Gruppe nicht geeignet ist, und alle an den Benutzer weiterleiten, der der Gruppe entspricht. Protokollieren Sie Fehler und behandeln Sie sie individuell.
Agf

Haben Sie diesen Befehl als root ausgeführt? (Ich hoffe nicht ...)
Axel

Antworten:


7

Eine Möglichkeit, das Problem hier zu beheben (nicht zu beheben, sondern Ihnen zu helfen), besteht darin, einen Prozess auf einem ähnlichen System auszuführen, um die entsprechenden Eigentümer für die Dateien zu sammeln. Ich schätze, dass die Chancen für eine exakte Übereinstimmung etwas gering sind, aber wenn beide Betriebssysteme mit ähnlichen installierten Paketen auf dem gleichen Niveau sind, haben Sie möglicherweise Glück.

Sobald Sie die Dateiberechtigungen in einer Datei gesammelt haben, können Sie einen Prozess auf Ihrem eigenen System ausführen, um die Dateien und Berechtigungen / Eigentumsrechte von der guten zu lesen und sie auf Ihrer zu ersetzen. Ich habe ein paar kleine Apps unter Linux, die genau das tun.

Z.B

777*0*0*S*16*1334559119*1334532895*1361208513*/usr/lib32/*libgomp.so.1
644*0*0*F*67370*1359536382*1359374461*1359717843*/usr/lib32/*librt.a
644*0*0*F*59044*1334559119*1334532931*1355405098*/usr/lib32/*libgomp.so.1.0.0
644*0*0*F*1238*1359536382*1359374461*1359717843*/usr/lib32/*libBrokenLocale.a
777*0*0*S*17*1359536382*1359374460*1361208513*/usr/lib32/*libdl.so
644*0*0*F*905712*1334559116*1334533011*1355405098*/usr/lib32/*libstdc++.so.6.0.16
777*0*0*S*15*1333306601*1323929512*1361208513*/usr/lib32/*libbz2.so.1.0
777*0*0*S*24*1359536382*1359374460*1361208513*/usr/lib32/*libnss_files.so
644*0*0*F*1128*1359536382*1359374462*1359717843*/usr/lib32/*crt1.o

RWX * UID * GID * anderes Zeug * Verzeichnis * Dateiname


5

Beenden Sie zunächst den Befehl, wenn er noch ausgeführt wird!

Jetzt wird alles zur Wurzel gehören und das ist ziemlich problematisch.

Sie sollten versuchen, Informationen aus Ihrer letzten Sicherung wiederherzustellen.

Es ist auch wichtig, das System nicht neu zu starten, bevor alle ausgeführten Anwendungen überprüft und der Benutzer sie beim Booten gestartet hat. In diesem Fall werden einige von ihnen aufgrund von Berechtigungsproblemen möglicherweise nicht ordnungsgemäß gestartet.

Viel Glück.


3

Sehr und nicht ganz.

"Sehr" in dem Sinne, dass Ihre Sicherheit beeinträchtigt wird, wenn der Befehl tatsächlich ausgeführt wurde. Sie wissen jetzt nicht, welche Pfade welche Eigentümer haben und wer was tun darf.

"Nicht ganz" in dem Sinne - sind Sie sicher, dass Sie root waren, als Sie es getan haben und der Befehl bis zum Ende durchgegangen ist? Wenn Sie es storniert haben, sobald Sie es gesehen haben, haben Sie möglicherweise Glück und die Reparatur ist möglicherweise gering. Wenn Sie nicht root waren, hätte dieser Befehl dies nicht tun können, es sei denn, Sie haben so etwas getan sudo ....

Es gibt kein einziges Mittel dagegen. Wenn Sie ein Backup haben, können Sie es wiederherstellen. Möglicherweise müssen Sie die Eigentümer in der Sicherung überprüfen und anwenden. Wenn Sie einen Rootkit-Prüfer (z. B. rkhunter) verwendet haben, enthält dieser möglicherweise eine Liste der grundlegendsten Eigentümer und kann diesen möglicherweise beheben. (Nicht sehr wahrscheinlich).


2

Zumindest unter Fedora verfügt der RPM-Befehl über die Optionen, --setpermsund --setugidsmit diesen können Sie die meisten systemeigenen Dateien wie reparieren rpm --setugids -a. Um die Dateien für jeden Benutzer (etwas) zu reparieren, können Sie dies für jeden Benutzer tun chown -R user /home/user. Es wird wahrscheinlich Reste geben, die durch die oben genannten Probleme nicht behoben wurden, insbesondere wenn Sie eine Art Server (Web, FTP, andere) haben. Diese müssen einzeln behandelt werden.

Wahrscheinlich haben andere Distributionen ähnliche Mechanismen. Oder führen Sie eine vollständige Aktualisierung durch (dh installieren Sie alles neu, als wäre es irgendwie beschädigt. OK, es war irgendwie beschädigt.)

[Ja, dies ist wieder einmal Unix 'ziemlich grausame Art, ahnungslosen Benutzern beizubringen, jeden Befehl sorgfältig zu prüfen, bevor sie die EINGABETASTE drücken, und root sparsam zu verwenden . Betrachten Sie sich als unterrichtet.]


setuidund setgidBerechtigungen müssen von Hand festgelegt werden. rpmwird sie nicht wiederherstellen.
jnas

1

Wenn Sie OSX verwenden, bietet Apple eine Wiederherstellungsfunktion in den Festplatten-Dienstprogrammen, um genau dieses Problem zu beheben. Wenn Sie eine Linux-Distribution verwenden, müssen Sie sicher alle Berechtigungen manuell wiederholen. Schlagen Sie in jedem Fall auf Ihre Hände und wiederholen Sie den Vorgang nicht erneut


Es ist wahrscheinlich unwahrscheinlich, dass dies unter Linux vollständig wiederhergestellt werden kann. Selbst wenn Sie das System zum Laufen bringen können, haben Sie wahrscheinlich etwas verpasst, das Sie später möglicherweise beißen wird, entweder als Instabilität oder als Sicherheitslücke. Ich würde sagen, dass wahrscheinlich ein Wiederherstellungs- oder Wiederherstellungsansatz erforderlich ist.
Chris Kuehl

0

Leider kenne ich keine Möglichkeit, es "rückgängig zu machen", aber Sie können wahrscheinlich Systemdateien als Eigentum von root belassen und alle Dateien in Ihrem $ HOME wiederherstellen, damit sie Ihnen gehören (und dasselbe für alle Benutzer von System). Zu diesem Zeitpunkt können Sie Berechtigungen und / oder Eigentümer für jede Datei festlegen, die sich nicht in Ihrem $ HOME-Verzeichnis befindet, das sie benötigt, sobald sie angezeigt wird. Ja, das ist ein Schmerz, aber ich glaube nicht, dass es eine einfache Lösung gibt. Das würde ich sowieso tun.


0

Ich würde sagen, dass Sie ziemlich "beschissen" sind, wie Sie sagen. Der beste (und effizienteste) Weg ist die Neuinstallation und Wiederherstellung kritischer Elemente aus Ihren guten Backups. Entschuldigung, dies ist keine Situation, die im Allgemeinen eine schnelle Lösung mit einem Happy End bietet. Viel Glück!

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.