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

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

<?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>'; }
?>

Оцени публикацию:
  • 2,10
Оценили человек: 2

Похожие статьи:

Справочники и учебники:


Предложения и пожелания:
Ваше имя:
Ваш E-mail:
Сколько будет Οдин + Τри
Главная
X

youtube.com/watch?v=7hFivbgIEqk

При полном или частичном использовании материалов данного сайта, ссылка на сайт "yapro.ru" обязательна как на источник информации.
Автоматический импорт материалов и информации с сайта запрещен.
Copyrights © 2007 - 2017 YaPro.Ru

Главная » Веб-мастеру » PHP »