Versehentliches chown unter / als Root

Versehentliches chown unter / als Root

Ich habe den folgenden Befehl versehentlich als Root ausgeführt. chown mike -Rf / backups Der Punkt ist, dass ich ein Leerzeichen zwischen / und Backups eingefügt habe. Mein Fehler. Ich habe den Befehl nach 1-2 Sekunden abgebrochen. Wie kann ich das wiederherstellen? Ich habe im Moment Probleme mit DirectAdmin. Wenn ich beispielsweise darauf zugreife, erhalte ich den Fehler:

Unable to determine Usertype
user.conf needs to be repaired
http://help.directadmin.com/item.php?id=456

Oder ich erhalte keine E-Mails mehr, ich weiß nicht einmal, was sonst noch gerade durcheinander ist ...

Antwort1

Es gibt keine Möglichkeit, dies wieder zu ändern, ohne auf Ihr Backup zurückzugreifen, da das System Änderungen des Eigentums nicht nachverfolgt.

Am besten erstellen Sie jetzt ein Backup, damit spätere Änderungen rückgängig gemacht werden können.

Die Neuinstallation der Pakete auf Ihrem System löst wahrscheinlich die meisten Eigentumsprobleme. Unter Debian/Ubuntu würde ich Folgendes tun:

apt-get install --reinstall package

auf einem rpmbasierten System so etwas wie rpm -Uvh --force package.rpm für alles, was Probleme macht. Bei richtiger Einrichtung überschreibt ein Paket keine Konfigurationsdateien, die Sie geändert haben.

Wenn Sie ein anderes, ähnliches System oder ein Backup haben, können Sie die ursprünglichen Eigentümerinformationen daraus abrufen und auf Ihr System anwenden. Erstellen Sie zunächst eine Liste der Dateien und Verzeichnisse, die Sie verwenden möchten:

find / -user mike

und verwenden Sie diese Liste, um Dateien im Backup oder einem ähnlichen System zu finden, die Mike nicht gehören.

Antwort2

Das hängt von dem Betriebssystem ab, das Sie verwenden.

Unter Solaris 10 oder älter können Sie alle Besitzerprobleme von Dateien und Verzeichnissen, die zu einem Paket gehören, mit dem folgenden Befehl beheben:

pkgchk -f

Bei Solaris 11 wäre das:

pkg fix

Ich glaube, AIX hat einen ähnlichen Befehl zur Paketkorrektur.

Wenn Sie ein RPM-basiertes Betriebssystem (Red Hat, Fedora und ähnliche) verwenden, sollten Sie in der Lage sein,

rpm -aV

um die Dateien und Verzeichnisse mit Abweichungen zur Paketdatenbank zu erkennen. Sie können sie dann beheben, indem Sie Folgendes ausführen:

rpm --setugids <package-name>

Sie müssen jedoch den Namen jedes betroffenen Pakets übergeben. Alternativ können Sie einfach Folgendes ausführen:

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

Wenn Sie ein Debian-basiertes Betriebssystem verwenden, werden die Dateieigentümerschaften leider nicht in der Paketdatenbank gespeichert. Sie müssen daher entweder Ihr Backup (sofern vorhanden) als Referenz zur Wiederherstellung der Eigentumsrechte verwenden oder ein ähnliches System dafür finden.

Antwort3

Ich habe genau den gleichen Fehler gemacht, durch einen Tippfehler am Ende des Satzes

chown -R root:root /folder/subfolder /

Ich habe das Leerzeichen vor dem Schrägstrich nicht bemerkt :(

Ich hoffe, dass ich das Problem durch meine Frage hier endlich lösen konnte, indem ich Besitzer und Gruppe von einem anderen installierten Debian-Server übernommen habe. Auf diesem Server habe ich Folgendes getan:

find / -not -path '/proc/*' -not -path '/var/www/*' -not -path '/home/*' ! \(  -name root -o  -group root \) | xargs stat --format 'chown %U:%G %n' | sort -k 2,3 > chown_owner_and_group.sh
chmod +X chown_owner_and_group.sh

Anschließend kopiere ich die Datei auf den Server, wo ich den Besitzer und die Dateigruppe wiederherstellen muss, und habe Folgendes ausgeführt:

./chown_owner_and_group.sh

Antwort4

Ich fürchte, die einzige Lösung, die Ihnen bleibt, ist ein Vergleich mit einer anderen Installation derselben Distribution und das korrekte Zurücksetzen der Besitzer.

verwandte Informationen