Fehler beim Löschen von Ordnern per FTP
Was tut man wenn der FTP-Client sich beharrlich weigert Ordner zu löschen? Richtig, man schreibt sich ein kleines PHP-Skript, was dies erledigt und gleich noch den Grund des Problems offenbart.
Als ich heute eine alte Joomla-Installation über FTP (FileZilla) löschen wollte, bekam ich irgendwann die Meldung, dass dies nicht möglich sein. Die Ordner waren augenscheinlich alle leer, auch ein Umbenennen und Verschieben der Ordner funktionierte problemlos. Die Rechte auf die Ordner waren ebenfalls korrekt gesetzt. Der RMD-Befehl verweigert aber mit einem schlichten Fehler 550 “Die Operation ist nicht erlaubt” seine Arbeit.
Nachdem auch der Windows-Kommandozeilen-FTP-Client meinem Löschwunsch ebenfalls nicht nach kam, schrieb ich ein PHP-Skript welches genau dies erledigen sollte. Dem Skript wird ein Pfad übergeben (sicherheitshalber steht dieser fest im Code). Mit diesen wird die Funktion delete() aufgerufen, welche die Hauptarbeit macht: Die Funktion prüft zunächst, ob es sich um einen Ordner oder eine Datei handelt. Eine Datei wird sofort gelöscht, bei einem Ordner wird dieser nach weiteren Elementen durchsucht und diese werden gelöscht. Ist der Ordner nun leer, wird dieser ebenfalls gelöscht. Ein paar Ausgaben teilen mit was gerade gelöscht wird.
Der Durchlauf des Skriptes zeigte nun auch die Ursache des Problems: Die Ordner waren mitnichten leer, sondern beinhalteten alle eine Datei namens ‘php.ini’. Diese Datei wurde wahrscheinlich von Joomla irgendwann man angelegt und zwar mit keinerlei Rechten für den FTP-Nutzer, so dass dieser diese Datei für diesen nicht einmal sichtbar war.


Schreiben Sie einen Kommentar zum Artikel