Ich habe vor kurzem den Befehl eingegeben
sudo chmod 777 -R /
danach mögen einige Dinge
sudo -i
arbeiten nicht normal. Ich frage mich also, ob ich die Ordnerberechtigungen auf irgendeine Weise auf ihren ursprünglichen Zustand zurücksetzen kann.
ubuntu
permissions
chmod
Braiam
quelle
quelle
Antworten:
Es ist möglich , aus dieser chaotischen Situation zurückzukommen.
Ich habe wieder die gleiche Art von Problem ausgeführt (ein Fehler in einem Skript, das ich geschrieben habe) und es behoben, aber Sie müssen einen Experten um Hilfe bitten. Sei sehr vorsichtig!
Erstens war meine Situation einfacher zu lösen, da ich ein Dual-Boot-System hatte (Ubuntu und meine alte Fedora-Installation), aber das Betriebssystem von einer CD / DVD oder einem USB-Stick auszuführen, sollte dasselbe tun.
Zuerst habe ich meine Dateisysteme wie folgt gemountet (vergessen Sie nicht, die Mountpunkte zu erstellen):
Dann habe ich den folgenden Befehl ausgeführt (mein Problem betraf nur einige wenige - kritische - Verzeichnisse), um die Berechtigungen vom laufenden System auf das unordentliche zu kopieren (in meinem Fall habe ich sogar ein Ubuntu-System in Virtual Box unter Fedora installiert und habe dort die Berechtigungen):
Und dann habe ich das Skript restoreperms.sh ausgeführt.
Ich konnte wieder mit Ubuntu booten.
Der Inhalt von restoreperms.sh wird ungefähr so aussehen:
Ich habe es nicht getestet, aber es muss auch für Eigentümer und Eigentümergruppen funktionieren. So etwas wie:
Natürlich muss hier darauf geachtet werden, dass UID und GID auf beiden Systemen gleich sind, aber für die systembezogenen Benutzer und Gruppen sollte dies kein Problem sein.
Bearbeiten:
Durch das Festlegen des Besitzers werden auch die SGID- und SUID-Flags ungültig gemacht , was seltsame Probleme verursacht (Sie können beispielsweise sudo nur ausführen, wenn die Berechtigung 4755 lautet). Sie müssen und sollten nur Berechtigungen AFTER Besitzer setzen. SPEICHERE die vollständigen Dateiberechtigungsinformationen zusammen mit den Besitzerinformationen.
Rk:
Jetzt habe ich diese Befehle in einem Cronjob, der jeden Tag (möglicherweise Wochen) ausgeführt wird, um diese Informationen zu speichern. Das wird die Lösung beim nächsten Mal einfacher machen, aber so wie ich es jetzt habe, wird es natürlich nie wieder vorkommen. ;-) Etwas wie das:
0 12 * * * /usr/bin/find / -exec /usr/bin/stat --format="/bin/chmod %a %n" {} \; |/bin/bzip2 -c > /tmp/restore_chmod.$(/bin/date +%w).sh.bz2
0 13 * * * /usr/bin/find / -exec /usr/bin/stat --format="/bin/chown %U:%G %n" {} \; |/bin/bzip2 -c > /tmp/restore_chown.$(/bin/date +%w).sh.bz2
Der richtige (kombinierte) Befehl ist eher so etwas wie:
Beachten Sie, dass zusätzliche Sorgfalt erforderlich sein kann, um Klammern in Dateinamen (z. B. unter Gebietsschemas) zu berücksichtigen, und dass chown möglicherweise die von chmod gesetzten Bits setuid und setgid stillschweigend deaktiviert. In letzterem Fall, der beispielsweise / bin / su und / usr / bin / sudo zum Erliegen bringt, müssen Sie möglicherweise die Reihenfolge der obigen exec-Klauseln vertauschen.
quelle
Nach Wiederherstellung Sudo oder Auswahl des Wiederherstellungsmodus beim Booten
Es ist möglich, ein ganzes System mithilfe von Debsummen wiederherzustellen, die die Integrität und die Berechtigungen von Dateien überprüfen.
von der man Seite:
oder auf einen bestimmten Pfad beschränkt, zB
/usr
:oder auf mehrere Pfade beschränkt, zB:
/sbin /etc /var
quelle
chmod a-x /bin/ping
unddebsums -c
wollte diese Datei nicht melden.Beobachten Sie immer, was Sie als sudo ausführen.
Dieser Thread erklärt, dass Sie einige Berechtigungen manuell zurücksetzen können, und ein Skript hilft dabei, aber es ist immer noch eine große Aufgabe. Befolgen Sie lieber die Tipps auf dem Laufenden, um die installierten Pakete (Markierungen) zu speichern und das Betriebssystem neu zu installieren, und wenden Sie die Markierungen für gespeicherte Pakete an, um Ihre Anwendungen wiederherzustellen.
quelle
Soweit ich weiß, bieten nur System V-Pakete und RPMs einen Befehl zum Reparieren von Dateiberechtigungen. Auf System V (Solaris) ist es pkgchk, bei RPMs ist es rpm --setperms.
Leider scheint es keinen solchen Befehl für Debian / Ubuntu-Pakete zu geben - aber ich könnte mich hier irren.
Aber selbst mit Hilfe dieser Befehle ist es keine triviale Aufgabe, Ihr System wieder in einen vernünftigen Zustand zu versetzen. Wenn Sie es reparieren, können Sie Ihrem System leicht neuen Schaden zufügen - wenn Sie nicht vorsichtig sind.
Anders als Joseph sagte, bist du nicht der erste und du wirst nicht der letzte sein, der einen solchen Befehl eingibt. Allein die Idee, die Dateiberechtigungen auf einem Unix-System auf 777 zu ändern, ist ein starkes Indiz dafür, dass Sie mit dieser Art von System nicht sehr erfahren sind. Das Beste, was Sie in dieser Situation tun können, ist, eine Sicherungskopie der benötigten Dateien (Basisverzeichnisse, Konfigurationsdateien, Maildateien?) Zu erstellen und eine Neuinstallation durchzuführen.
Und Sie sollten sehr, sehr vorsichtig sein, wenn Sie Ihre - beschädigten - Sicherungsdateien wiederherstellen.
Viel Glück!
PS: Ich frage mich nur, was für ein Problem Sie lösen wollten?
quelle
Wow, du hast es getötet. Es ist tot! Melden Sie sich an und verwenden Sie den Computer als root (seitdem Sie ihn aktiviert haben). Ändern Sie dann die Gruppenzugehörigkeit von root in Benutzer. Das mag funktionieren oder auch nicht, weil ich es noch nie probiert habe, aber es ist einen Versuch wert.
quelle
Sie können eine
chmod
Operation nicht rückgängig machen . Zumindest nicht im Sinne eines Rollbacks zu einer früheren Einstellung, was in dieser Situation erforderlich ist. Argumentieren, Sie können eine Undochmod
Operation, durchchmod
jede Datei und Verzeichnis wieder in seinen ursprünglichen Modus ing - aber sie sind nicht alle gleich; Das Ermitteln der ursprünglichen Modi ist schwierig (wie in den anderen Antworten erläutert).quelle