Befehl rückgänig machen

Hallo,

folgender Befehl wurde auf einer Maschine mit CentOS 5.7 durchgeführt:

chmod -R 777 /Library/WebServer/Documents
cd /usr/local
mkdir apache
cd apache/
mkdir var
cd var/
touch DAVLock
cd ../../
chmod -R 777 apache

Danach funktionierte der SSH Server nicht mehr mit der Fehlermeldung:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0777 for '/etc/ssh/ssh_host_rsa_key' are too open.
It is recommended that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: /etc/ssh/ssh_host_rsa_key
Could not load host key: /etc/ssh/ssh_host_rsa_key
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0777 for '/etc/ssh/ssh_host_dsa_key' are too open.
It is recommended that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: /etc/ssh/ssh_host_dsa_key
Could not load host key: /etc/ssh/ssh_host_dsa_key
Disabling protocol version 2. Could not load host key
sshd: no hostkeys available -- exiting.
[FEHLGESCHLAGEN]


Weiß jemand Rat? Danke für die Mühe
 
Ändere die Rechte der beanstandeten Dateien so, dass sie nur für den Eigentümer les- und schreibbar sind. Der Eigentümer muss root:root sein.
 
Ändere die Rechte der beanstandeten Dateien so, dass sie nur für den Eigentümer les- und schreibbar sind. Der Eigentümer muss root:root sein.

Danke dir. SSH geht wieder.

Kann es aber sein, dass dieser dämliche Befehl alle Rechte verändert hat?

Sollte man ein Backup evtl. aufspielen oder geht das auch so zu fixen?

*Update*

Tatsächlich. So ein Mist, alle Rechte sind auf 777. Wie kann ich das wieder auf Ausgangsrechte setzen?
 
Zuletzt bearbeitet:
Natürlich ist es möglich, dass auch andere Dateien davon betroffen sind. Du kannst aber für alle Dateien, die aus RPMs kommen, die Rechte auch wiederherstellen.

Code:
rpm --setperms {paketname}
rpm --setugids {paketname}

Das ganze lässt sich dann einfach im Loop auf alle installierten Pakete anwenden:

Code:
for a in $(rpm -qa); do rpm --setperms $a; done
for a in $(rpm -qa); do rpm --setugids $a; done

Das ist ungetestet. Solltest du also ggf. auf einem Test-Rechner vorher ausprobieren.

Bei generierten Dateien wie den SSH-Keys funktioniert das allerdings nicht. Die musst du also manuell überprüfen und fixen.
 
Vielen Dank bitmuncher für die schnelle und ausführliche Hilfe. Leider hab ich keinen Test-Server und werde wohl dann über Nacht ein Backup von gestern aufspielen. Danke Dir!
 
Boote dir auf irgendeinem Rechner eine VM z.B. mit VirtualBox. Installiere dort mal schnell ein CentOS. Ändere die Rechte von ein paar Dateien auf 0777. Lass die genannten Befehle drüberlaufen und schaue ob die Rechte der geänderten Dateien zurückgesetzt wurde. Das sollte eigentlich für jeden Server-Admin machbar sein und schon hat man seinen Test.

Edit: Viel schiefgehen kann aber eigentlich nicht. Im schlimmsten Fall kennt deine RPM-Version die entsprechenden Parameter nicht. Nur Tippfehler sollte man vermeiden, damit aus rpm nicht rm wird. ;)
 
Boote dir auf irgendeinem Rechner eine VM z.B. mit VirtualBox. Installiere dort mal schnell ein CentOS. Ändere die Rechte von ein paar Dateien auf 0777. Lass die genannten Befehle drüberlaufen und schaue ob die Rechte der geänderten Dateien zurückgesetzt wurde. Das sollte eigentlich für jeden Server-Admin machbar sein und schon hat man seinen Test.

Edit: Viel schiefgehen kann aber eigentlich nicht. Im schlimmsten Fall kennt deine RPM-Version die entsprechenden Parameter nicht. Nur Tippfehler sollte man vermeiden, damit aus rpm nicht rm wird. ;)

:D. Alles klar. Werde es probieren und rückmeldung geben.
 
Zurück
Oben