Проверка лишних прав доступа к файлам и директориям

Автор: Aport Суббота, Январь 31st, 2015 Нет комментариев

Рубрика: Язык PHP

Следующий код поможет Вам найти директории и файлы, которым выставлены ненадлежащие права доступа

<?php
error_reporting(E_ERROR | E_PARSE);
$dir = ‘/usr/home/volhovecm/data/www/volhovecm.ru/’;// проверяемая директория сайта
class check_perms {
function check_perms($curpath){
if($curpath){
if($dir = @dir($curpath)){
while ($file = $dir-> read()){
if($file != «.» && $file != «..»){

$perms = substr(decoct(fileperms($curpath.$file)), 2);

if(is_dir($curpath.$file)){// если есть поддиректории то продолжаем рекурсию
$this-> check_perms($curpath.$file.»/»);

if($perms>775 || $perms<775){
if(!@chmod($curpath.$file, 0775)){
$this->perms_d775 .= $curpath.$file.»\n»;
}
}
}else{// файл

$ext = array_reverse(explode(‘.’, $file));

if($ext['0']==’php’ && ($perms>775 || $perms<775)){
if(!@chmod($curpath.$file, 0775)){
$this->perms_f775 .= $curpath.$file.»\n»;
}
}else if($ext['0']!=’php’ && ($perms>664 || $perms<664)){
if(!@chmod($curpath.$file, 0664)){
$this->perms_f664 .= $curpath.$file.»\n»;
}
}
}
// пытаемся сменить группу
/*if($GLOBALS['group']){
$group = filegroup ($curpath.$file);
if($group!=$GLOBALS['group'] && !@chgrp($curpath.$file, $GLOBALS['group'])){
$this->group .= $curpath.$file.»\n»;
}
}
// пытаемся сменить владельца
if($GLOBALS['owner']){
$owner = fileowner ($curpath.$file);
if($owner!=$GLOBALS['owner'] && !@chown($curpath.$file, $GLOBALS['owner'])){
$this->owner .= $curpath.$file.»\n»;
}
}*/
}
}
$dir->close();
}
}
}
}
$files_map = new check_perms($dir);
if($files_map->perms_d775){ echo ‘Следующим директориям нужно выставить права доступа 0775:<pre>’.$files_map->perms_d775.’</pre>’; }
if($files_map->perms_f775){ echo ‘Следующим файлам нужно выставить права доступа 0775:<pre>’.$files_map->perms_f775.’</pre>’; }
if($files_map->perms_f664){ echo ‘Следующим файлам нужно выставить права доступа 0664:<pre>’.$files_map->perms_f664.’</pre>’; }
//if($files_map->group){ echo ‘Следующим файлам нужно выставить права доступа 0664:<pre>’.$files_map->group.’</pre>’; }
//if($files_map->owner){ echo ‘Следующим файлам нужно выставить права доступа 0664:<pre>’.$files_map->owner.’</pre>’; }
?>

 

Источник: yapro.ru

Оставить комментарий

Чтобы оставлять комментарии Вы должны быть авторизованы.

Похожие посты