Skip to main content

Alles für die Homepage... Scripte, Templates, Workshops und Support

Auslesen von Verzeichnis und Dateirechten

Das hier vorgestellte kleine Script liest rekursiv die chmod der Verzeichnisse und Dateien aus. Hilfreich wenn man mit Daten auf einen anderen Server wechselt und dort die Dateirechte neu setzen muss.

Komplettes Codebeispiel und Screenshot

Dieses Script liest von allen Verzeichnissen und Dateien unterhalb des Scriptes die chmods aus und stellt diese in einer Tabelle dar. Möchte man die chmod „mitnehmen“, z.B. wenn ein Serverwechsel ansteht, einfach alle nötigen Ausgaben in eine Datei speichern und auf dem neuen Server auslesen. Dort dann mittels

CODE:
chmod ( $datei, $dateirecht );

neu setzen.

Der Code zum auslesen der Dateirechte

CODE:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">

<title>Dateirechte auslesen</title>

<style type="text/css">
body, td {
background-color: #f7f7f7;
font-family: Verdana, Arial;
font-size: 11px;
color: #000000;
}

</style>

</head>
<body>

<table cellspacing="2" cellpadding="2" border="1"> 
<tr> 
    <td>Verzeichnis  - Datei</td> 
    <td>chmod okt.</td> 
    <td>chmod</td> 
</tr>     
<?php     
read_rekursiv(); 
?>  
</table> 

<?php 
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // 
// Verzeichnisse und Dateien auslesen 
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // 
function read_rekursiv($pfad = ".")    {         
       
$dir = dir($pfad);         
while(false !== ($file = $dir->read())) {             

if(("."  == $file) OR (".." == $file))                 
continue; 

if(is_dir($pfad."/".$file)) { 
    list ($chmod1,$chmod2)  = dateirechte($pfad."/".$file, true); 
    clearstatcache(); 
    echo "<tr>\n\t<td><b>$pfad/$file</b></td>\n\t<td>$chmod1</td>\n\t<td>$chmod2</td>\n</tr>\n"; 
    read_rekursiv($pfad."/".$file);             
} else {  
    list ($chmod1,$chmod2) = dateirechte($pfad."/".$file, false); 
    clearstatcache();                
    echo "<tr>\n\t<td>$pfad/$file</td>\n\t<td>$chmod1</td>\n\t<td>$chmod2</td>\n</tr>\n"; 
}         
}         
$dir->close();     
} 

// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // 
// Hilfsroutine chmod auslesen 
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // 
function dateirechte($file, $octal = false) { 
if(!file_exists($file)) return false; 

$perms = fileperms($file); 
$cut = $octal ? 1 : 2; 
$chmod = substr(decoct($perms), $cut); 
return array($perms, $chmod); 
} 
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // 
?>

</body>
</html>

Screenshot der Ausgabe

xx

 

Anzeige


Ähnliche Beiträge



Keine Kommentare vorhanden


Du hast eine Frage oder eine Meinung zum Artikel? Teile sie mit uns!

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *