net-board.net Archiv

Normale Version: Unlöschbare Ordner auf dem Server löschen!
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Leute,

hier ein Codeschnippsel wie Ihr z.B. von einen Script generierte Ordner wegbekommt worauf Ihr per FTP Client keinen Zugriff mehr drauf habt dieses hat bei mir Funktioniert Wink

[code=php]
<?php

// rec_rmdir - loesche ein Verzeichnis rekursiv
// Rueckgabewerte:
// 0 - alles ok
// -1 - kein Verzeichnis
// -2 - Fehler beim Loeschen
// -3 - Ein Eintrag eines Verzeichnisses war keine Datei und kein Verzeichnis und
// kein Link
function rec_rmdir ($path) {
// schau' nach, ob das ueberhaupt ein Verzeichnis ist
if (!is_dir ($path)) {
return -1;
}
// oeffne das Verzeichnis
$dir = @opendir ($path);

// Fehler?
if (!$dir) {
return -2;
}

// gehe durch das Verzeichnis
while ($entry = @readdir($dir)) {
// wenn der Eintrag das aktuelle Verzeichnis oder das Elternverzeichnis
// ist, ignoriere es
if ($entry == '.' || $entry == '..') continue;
// wenn der Eintrag ein Verzeichnis ist, dann
if (is_dir ($path.'/'.$entry)) {
// rufe mich selbst auf
$res = rec_rmdir ($path.'/'.$entry);
// wenn ein Fehler aufgetreten ist
if ($res == -1) { // dies duerfte gar nicht passieren
@closedir ($dir); // Verzeichnis schliessen
return -2; // normalen Fehler melden
} else if ($res == -2) { // Fehler?
@closedir ($dir); // Verzeichnis schliessen
return -2; // Fehler weitergeben
} else if ($res == -3) { // nicht unterstuetzer Dateityp?
@closedir ($dir); // Verzeichnis schliessen
return -3; // Fehler weitergeben
} else if ($res != 0) { // das duerfe auch nicht passieren...
@closedir ($dir); // Verzeichnis schliessen
return -2; // Fehler zurueck
}
} else if (is_file ($path.'/'.$entry) || is_link ($path.'/'.$entry)) {
// ansonsten loesche diese Datei / diesen Link
$res = @unlink ($path.'/'.$entry);
// Fehler?
if (!$res) {
@closedir ($dir); // Verzeichnis schliessen
return -2; // melde ihn
}
} else {
// ein nicht unterstuetzer Dateityp
@closedir ($dir); // Verzeichnis schliessen
return -3; // tut mir schrecklich leid...
}
}

// schliesse nun das Verzeichnis
@closedir ($dir);

// versuche nun, das Verzeichnis zu loeschen
$res = @rmdir ($path);

// gab's einen Fehler?
if (!$res) {
return -2; // melde ihn
}

// alles ok
return 0;
}

// loesche das Verzeichnis /tmp/test_verzeichnis
$res = rec_rmdir ('/tmp/test_verzeichnis');
switch ($res) {
case 0:
echo'das Verzeichnis wurde korrekt gelöscht';
break;
case -1:
echo'das war kein Verzeichnis';
break;
case -2:
echo'ein Fehler ist aufgetreten';
break;
case -3:
echo'die Funktion ist über einen Dateityp gestolpert, den sie nicht kennt';
break;
default:
echo'Die Funktion hat irgend etwas zurückgegeben, was sie eigentlich nicht sollte';
break;
}
?>
[/code]
Geht aber noch einfacher :-)

FTP Programm einloggen und schauen ob versteckte dateien vorhanden sind. Wenn ja. löschen und weg ist es :-) Meist löschen sich die Ordner nicht weil access dateien oder ähnliche darin befinden.
Meinste Wink

Flasch.

als Owner wwwrun haste kein Zugriff was der Benutzer angelegt hat (bzw. Script)

-> web[xxx]... Ist ja ein anderer Benutzer... man kann aber sowas konfiguriern das wwwrun unter dem web[xxx] benutzer liegt sowas wie root rechte z.b. daher gibts dieses schöne script...
wwwrun kann man ganz einfach löschen mittels ftp-programm. geht bei 1und1 so, bei meinen server, und andere auch die ich habe ;-)

Wüsste nicht wo das problem ist Wink
dan is das nur bei uns so ^^ kannst ja auch keine chmod rechte verändern mehr :/
Klar selbst das kann ich machen Smile
na egal das trotzdem schönes script wenn man ma ordnung haben will *FG* mit einen klick ist alles weg :lachen:
Wenn das geht ist es natürlich eine gute sache :-)