Kernel Error
GNU/Linux, PHP, Programacion

Verificador de Permisos PHP

13 de Abril del 2009 por b@cHo · Sin Comentarios 

Con este script podemos verificar si el CHMOD concuerda con el que querramos en el ejemplo se pueden ver ambos casos: Si es el chmod deseado o si no lo es.

Esta especie de scripts son muy utiles al momento de verificar grandes cantidades de directorios y o archivos, este script también funciona con archivos.

Tambien con este script se presenta un buen uso de clearstatcache(); entre otras funciones, y se maneja un ejemplo para integrarlo a una tabla previamente hecha en HTML

<?php function ver_chmod($nombre,$ruta,$deberia)
/*
Descripción:
Ver_Chmod te permite ver el estado actual de permisos de un directorio o un archivo y te muestra si es el pedido o no
Su uso:
por ejemplo para verificar el directorio en el que este esta seria:
llama funcion     etiqueta        directorio     chmod querido
ver_chmod       ("raiz",             "./",             "0755");
para retroceder rutas se usa un . por ejemplo para ver 2 directorios arriba
ver_chmod("dosdirectorios",".../","0755");

esta funcion se peude usar en mas de una petición y usando solo una funcion

        ver_chmod("raiz","./","0755");
        ver_chmod("imagenes/",".../imagenes","0755");
        ver_chmod(".htaccess",".../.htaccess","0644");
y automaticamente lo combierte en una tabla, y el color de fondo varia si el chmod pedido es el mismo

Sugerencias:
Al momento de mostrarlo se crea con una tabla, se sugiere hacer una tabla parecida a esta para que concuerde el diseño:
<table width="100%"  border="0" cellspacing="0" cellpadding="3" style="text-align:center;">
         <tr>
        <th style="border:0px;"><b>Nombre</b></th>
        <th style="border:0px;"><b>Directorio/archivo</b></th>
        <th style="border:0px;"><b>Chmod Necesario</b></th>
        <th style="border:0px;"><b>Chmod Actual</b></th>
<script php>
</table>
*/
{
    clearstatcache();
//borra la data anterior
    $actual= substr(sprintf(".%o.", fileperms($ruta)), -4);
    $estilo = (($actual != $deberia) ? "background-color:#fd7a7a;" : "background-color:#91f587;");
	//crea el estilo de la tabla y lo compara con el chmod querido y el actual

    echo "<tr style=".$estilo.">";
    echo '<td style="border:0px;">' . $nombre . "</td>";
    echo '<td style="border:0px;">'. $ruta ."</td>";
    echo '<td style="border:0px;">' . $deberia . '</td>';
    echo '<td style="border:0px;">' . $actual . '</td>';

    echo "</tr>";

	//final de la creacion de la fila
} ?>

El HTML usado en el ejemplo es el siguiente

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Checador de permisos</title>
</head>

<body>

<table width="100%"  border="0" cellspacing="0" cellpadding="3" style="text-align:center;">
         <tr>
        <th style="border:0px;"><b>Nombre</b></th>
        <th style="border:0px;"><b>Directorio/archivo</b></th>
        <th style="border:0px;"><b>Chmod Necesario</b></th>
        <th style="border:0px;"><b>Chmod Actual</b></th>
    </tr>
    <?php
        ver_chmod("Directorio actual","./","0777");
        ver_chmod("archivo","./chmod.php","0644");
    ?>
	</table>
</body>
</html>

Acontinuacion el ejemplo

  • Twitter
  • Facebook
  • MySpace
  • Google Bookmarks
  • del.icio.us
  • Mixx
  • Digg
  • email

Comenta algo

Comparte tu opinión... recuerda que puedes usar BBCode!





BBCode Sencillo soportado.  

    Edición Avanzada desactivada.

Kernel Error
97 intentos de ataques detenidos