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

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

<?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:
Введите изображенные цифры:
Captcha

HTML (19)

CSS (36)

PHP (21)

MySQL (14)

JavaScript (57)

Flash (6)

XML (3)

Apache (34)

Дизайн (35)

Продвижение (30)

Программы (25)

Unix (11)

Интересное (37)


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


Последние комменты:

07.02.2012 13:27, 11 комментов
07.02.2012 00:29, 4 коммента
02.02.2012 15:31, 4 коммента

Новые заметки:

Защита сервера от ошибок в phpMyAdmin

HTML5 - новые виды атак

Социальные рекомендации Twitter в Google

Ашманов про стартапы

Skype Distributed Database Architecture

Erlang - лекарство при высоких нагрузках

Amazon Web Services: инструменты обеспечения масштабируемости и отказоустойчивости

Обсуждения на форуме:

Новый раздел

Шаблонизация

YaPro - Полная сборка системы

Дубли файлов, эскизы изображений, редактирование шаблонов

Общая регистрация в CMS и phpBB3

Помощь в разработке шаблона

Идея модуля музыкальной системы

Ошибка в тексте? Выделите её мышкой и нажмите: Ctrl + Enter| Здравствуйте, Гость | Войти | Регистрация| Карта сайта | RSS ленты
О проекте | Скачать CMS | Видеоуроки | Документация | Плагины | Форум | Идеи | Новости | Веб-мастеру | Контакты

YaPro CMS в Живом Журнале

YaPro CMS в Твитере

YaPro CMS в Одноклассниках

YaPro CMS в Яндекс.Блогах


youtube.com/watch?v=7hFivbgIEqk

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


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