StartseiteSkriptePHP

FTP-Daten Benutzerrechte ändern

21. SEPTEMPER 2011
von Jörg
Skripte - PHP

Wenn Verzeichnisse oder Daten von CMS-Systemen (Joomla/Wordpress/etc.) gelöscht oder geändert werden, kann es vorkommen das über FTP-Zugriff manche Dateien oder Verzeichnisse unverändert auf dem Server bleiben, da die nötigen Benutzerrechte, die bei dem Erstellen vergeben wurden, fehlen.
Diese Dateien oder Verzeichnisse wurden dann über serverseitige Skriptsprachen erstellt oder geändert und haben somit andere Zugriffsrechte.

Um die Benutzerrechte / Gruppe zu ändern müssen diese serverseitig mit eine Skriptsprache abgeändert werden, chmod muss neu gesetzt werden.

Abhilfe sollte das folgende PHP-Skript schaffen.
Einfach in eine Datei kopieren, diese dann in das Root-Verzeichnis auf dem Server legen und über dem Browser aufrufen. Dann das Verzeichnis oder die Datei angeben wo die Rechte geändert werden sollen und auf den "Start"-Button klicken.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<h3>CHMOD setzen</h3>
<p>
Verzeichnis hinzufügen, von welchem die Rechte geändert werden sollen. <br />
zum Beispiel Verzeichnis cache, dann einfach <strong>cache/</strong> anfügen.<p>
<form>
<input name=dir size=62 value=<?php echo getcwd();?>>
<input type=submit value="Start">
</form>
</p>

<?php 
$dir = $_GET["dir"];
if ($dir) {
        echo "<hr>";
        fix($dir);
}

function fix($obj) {
        if (is_dir($obj)) {
                status("Directory: ", $obj);
                if ($fd = opendir($obj)) {
                        while (($child = readdir($fd)) != false) {
                                if (!strcmp($child, ".")) {
                                        continue;
                                }

                                if (!strcmp($child, "..")) {
                                        continue;
                                }

                                $fullpath = "$obj/$child";
                                fix($fullpath);
                        }
                        chmod($obj, 0777);
                } else {
                        error("Error reading dir", $obj);
                }
        } else if (is_file($obj)) {
                print "File: <b>$obj</b><br>";
                chmod($obj, 0666);
        }
}
function status($msg, $obj) {
        print "$msg: <b>$obj</b><br>";
}
function error($msg, $obj) {
        print "<font color=red>$msg: <b>$obj</b></font><br>";
}
?>

Bei manchen Webspace-Anbietern ist es auch möglich über einen Webzugriff über deren Seite auf der Server zu gelangen, dort werden meist noch mehr Rechte angeboten und die Verzeichnisse können gelöscht oder verändert werden.

Hinterlasse einen Kommentar

Ein Frosch der sich an der Seite festhält