Wie behebt man "/etc/sudoers is world writable" Oracle Cloud Linux Server?
Ich habe
sudo chmod 777 -R /etc/
auf meinem Linux Server ausgeführt.
Jetzt kann ich weder via FileZilla oder PuTTY connecten.
Ich habe den Befehl nur verwendet, da es mich genervt hat ständig einzelnen Dateien permissions zu erteilen nur um sie in FileZilla bearbeiten zu können.
Nun hat sich herausgestellt, dass das nicht besonders klug war und somit viele Sicherheitslücken & Probleme entstehen können.
Ich würde es gerne rückgängig machen, habe aber keine Idee mehr wie Ich es noch versuchen sollte, da ich Im Oracle Cloud Dashboard weder Cloud Shell verwenden kann (da es ein Passwort anfordert welches ich nicht habe, weil ich es nie erstellt oder erhalten habe) noch das ich die Instanz im recovery Modus starten kann (da ich keine Option sehe dies zu tun).
Kann mir vielleicht jemand weiterhelfen? Es wäre gut wenn ich die Instanz nicht neu aufsetzen muss, denn Ich brauche einige Dateien noch.
3 Antworten
Grundsätzlich werden die meisten Ordner 755 gehabt haben, die meisten Dateien 644.
Das kannst du wie folgt machen:
find /etc -type f -exec chmod 644 {} +
find /etc -type d -exec chmod 755 {} +
Das kann gewisse Dinge schon mal beheben, aber nun mal nicht alles.
Gewisse Dateien und Ordner haben spezielle Permissions, bspw. die genannte /etc/sudoers, welche 400 hat. Ebenfalls wichtig wäre /etc/shadow, die hat 600.
Am besten gleichst du das mit einer frischen Installation ab und findest diese Sonderfälle.
Wenn aber gerade von frischen Installationen sprechen: Das wäre wohl die einfachste und schnellste Lösung. Falls das für dich keine Option ist, musst du durch die obigen Schritte durch. Ohne Backup gehts nicht anders.
Das hier schon versucht? https://docs.oracle.com/en-us/iaas/Content/Compute/Tasks/recoveringlinuxbootvolume.htm
Kenne mich mit der Oracle Cloud nicht aus, hier lese ich aber, dass es die Möglichkeit gibt, das Volume in einer zweiten Instanz zu mounten. Da kannst du ggf. noch auf die Daten zugreifen und (wenn du willst) die Permissions von /etc ändern.
Die serial console funktioniert nicht mit dem Fehlercode: connection refused
weißt du was man da machen kann?
Geile Idee der ganzen Welt Lese- und Schreibrechte auf Systemdateien zu geben.
Diese Dateien bearbeitet man auschließlich mit Root-Rechten!!! Die holt man sich mit
sudo su
oder
su root
oder
su -
Die Unterschiede dieser Methoden kannst Du im Internet nachlesen, ist aber für das folgende nicht kritisch.
Um die Rechte wieder geradezurücken sollten folgende Befehle helfen:
find /etc -type d -exec chmod 755 {} \;
find /etc -type f -exec chmod 644 {} \;
Die erste Zeile setzt die Rechte der Verzeichnisse auf den Standard 755 zurück und die zweite Zeile bereinigt die Dateirechte auf den Standard 644.
Weiteres dazu wie man find und chmod kombiniert findest Du hier:
Ich habe den Befehl nur verwendet, da es mich genervt hat ständig einzelnen Dateien permissions zu erteilen nur um sie in FileZilla bearbeiten zu können.
Hättest du Filezilla die Rechte richtig Konfiguriert müsstest du auch nicht jede Datei konfigurieren welche du mit Filezilla bearbeiten willst oder Kopieren ( je nachdem).
Nun hat sich herausgestellt, dass das nicht besonders klug war und somit viele Sicherheitslücken & Probleme entstehen können.
Bei den Einzelnen Dateien ja weil du die Rechte zu den Dateien verändert hast.
Hättest nur die Rechte für Filezilla bearbeitet , wäre das wieder was anderes.
Wenn du im Terminal / Shell / Bash die Befehle konfiguriert hast kannst du mit
history die die letzten 500 Eingaben Anzeigen lassen , wenn du so weist welcher Befehl es war ,kannst so die Gegenmaßnahmen herausfinden die die Ursprünglichen Werte wiederherstellt.
Wenn es nur Dateien sind kannst du die werte der Datei mit einer Referenz Datei Vergleichen und so auch die Referenzwerte übernehmen.
wie benutze ich die commands denn, wenn ich keinen zugriff auf putty oder cloud shell habe?