Jump to content
Sign in to follow this  
tim21701

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

Recommended Posts

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

<?php
error_reporting(E_ERROR | E_PARSE);
 $dir = '/usr/home/ВАШ_САЙТ/data/www/ВАШ_САЙТ.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>'; }
?>

Share this post


Link to post
Share on other sites

а я в интернете как-то нашел такой список папок на которые нужно выставить права 777,так и ставлю всегда,возможно он не правильный?На что вообще влияют эти права?

/config.php

/admin/config.php

/system/cache/

/system/logs/

/image/

/image/cache/

/image/data/

/download/

а как скриптом пользоваться,просто скопировать например в файл script.php и запустить на сайте вот так site.com/script.php ?

Share this post


Link to post
Share on other sites

...а как скриптом пользоваться,просто скопировать например в файл script.php и запустить на сайте вот так site.com/script.php ?

Да.

Share this post


Link to post
Share on other sites

В третье строке один раз пишу свой сайт без .ru заним уже свой сайт.ru., больше не чего не менял

Далее всё в оболочку script.php и загружаю в папку WWW.

В браузере ввожу - мой сайт.ru/script.php.

В итоге появляется просто белый пустой экран, это и есть результат, или что-то не так делаю.

Share this post


Link to post
Share on other sites

А ваш сайт действительно имеет окончание .ru?

Понятие "ВАШ_САЙТ.ru" не значит, что надо писать site.com.ua.ru, если ваш сайт - site.com.ua... :)

Да и вообще надо прописывать свой путь. Он у вас не обязательно будет такой, как в примере...

У меня, например, путь такой:

/var/www/МОЙ ЛОГИН(ПОЛЬЗОВАТЕЛЬ)/data/www/МОЙ САЙТ/

Share this post


Link to post
Share on other sites

А ваш сайт действительно имеет окончание .ru?

Понятие "ВАШ_САЙТ.ru" не значит, что надо писать site.com.ua.ru, если ваш сайт - site.com.ua... :)

Да и вообще надо прописывать свой путь. Он у вас не обязательно будет такой, как в примере...

Можно прописать какой угодно путь...

Share this post


Link to post
Share on other sites

Что значит "какой угодно"???? Надо писать правильный путь, или можно любую глупость написать? :)

Share this post


Link to post
Share on other sites

А ваш сайт действительно имеет окончание .ru?

Понятие "ВАШ_САЙТ.ru" не значит, что надо писать site.com.ua.ru, если ваш сайт - site.com.ua... :)

Да и вообще надо прописывать свой путь. Он у вас не обязательно будет такой, как в примере...

Окончанее 100 пудово.RU

...а вот про свои путь - ЭТО КАК?

Share this post


Link to post
Share on other sites

Что значит "какой угодно"???? Надо писать правильный путь, или можно любую глупость написать? :)

Ну, откуда мне знать в каком домене у Вас сайт? Можете прописать .com, .net, .ua, .info,... Вот, что означают слова - "всё, что угодно". :rolleyes:

Share this post


Link to post
Share on other sites

Ну, откуда мне знать в каком домене у Вас сайт? Можете прописать .com, .net, .ua, .info,... Вот, что означают слова - "всё, что угодно". :rolleyes:

:) да мне не надо. Я знаю свой путь... Это у gdi31 ваш скрипт не работает. Мне он вообще не нужен. :)

gdi31, добавьте в корень сайта вот этот файлик, запустите и увидите полный путь к файлу:

test.php

Share this post


Link to post
Share on other sites

а я в интернете как-то нашел такой список папок на которые нужно выставить права 777,так и ставлю всегда,возможно он не правильный?На что вообще влияют эти права?

/config.php

/admin/config.php

...

на эти файлы права должны быть 644 (!) иначе двери админки вашего магазина открыты для всех желающих ))

Share this post


Link to post
Share on other sites

Может, кто разъяснить?

Стоят права доступа к файлам :

Изображение

Всё гладко и шёлково

Ставлю права доступа к файлам:

Изображение

Вылазит так, шо на голову не оденешь!

Изображение

Так и задумано? или где-то очередные камни и рифы?

Share this post


Link to post
Share on other sites
gdi31: на папки system/cache и system/logs поставьте 775, если не поможет - тогда 777. Про папку smsgate ничего не могу сказать, а на остальные вроде можно оставить 655.

Share this post


Link to post
Share on other sites

gdi31: на папки system/cache и system/logs поставьте 775, если не поможет - тогда 777. Про папку smsgate ничего не могу сказать, а на остальные вроде можно оставить 655.

С этим более или мене понятно . . .

А алфавит, чё так плющит ?Изображение

- дак самое интересное, вражеский не трогает, а по нашему родному, всей массой.

Есть специалист, который совокупность знаков для письма на каком-то языке (в моём варианте русских букв), расположенных в определённом порядке - вылечит (ну или хотябы подлечит) ?Изображение

Share this post


Link to post
Share on other sites

Хороший полезный скрипт.

Особенно после восстановления из бекапов.


Может есть смысл доработать его чтобы проверял правильность выставленных прав в версиях 2.1, 2.3 и 3.0х?

 

На 2.3.0.2 - не проверяет права на каталоги по причине изменившейся структуры.
 

Edited by VadimOd
синтаксис

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.