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?
linux
unix
permissions
filesystems
chmod
user1938700
quelle
quelle
find
alle 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.Antworten:
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
RWX * UID * GID * anderes Zeug * Verzeichnis * Dateiname
quelle
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.
quelle
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).
quelle
Zumindest unter Fedora verfügt der RPM-Befehl über die Optionen,
--setperms
und--setugids
mit diesen können Sie die meisten systemeigenen Dateien wie reparierenrpm --setugids -a
. Um die Dateien für jeden Benutzer (etwas) zu reparieren, können Sie dies für jeden Benutzer tunchown -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.]
quelle
setuid
undsetgid
Berechtigungen müssen von Hand festgelegt werden.rpm
wird sie nicht wiederherstellen.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
quelle
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.
quelle
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!
quelle