после того, как ломанули и прописали всякую фигню, я закинул в корень ай-болит и он сказал, что шелла нет!
Не надо забывать о пункте 3 и после работы скрипта поставить как написано.
1. ВСЕ серверное ПО должно быть ПОСЛЕДНЕЙ версии, включая CMS.
2. После установки InstantCMS на все ПАПКИ должны быть выставлены права 755, на все файлы 644.
3. После чего на директории /images, /upload, /cache, и всех вложенных в них выставляем права 777. (важно! для файлов .htaccess и index.html в этих директориях необходимо оставить права 644)
4. Для файла /includes/config.inc.php выставляем права 777 ТОЛЬКО НА ВРЕМЯ КОНФИГУГРИРОВАНИЯ! После права на этот файл должны стоять 644.
5. Владельцем ваших файлов и папок должен быть пользователь какой угодно, но НО НЕ тот от которого запускается веб сервер или работает php.
6. Для php необходимо настроить дериктиву open_basedir, ограничив директорией вашей www папки. В идеале chroot.
7. Закрыть для ВСЕХ ВСЕ порты на сервере, кроме 80 (443 при необходимости). Доступ к нужным портам из вне открыть для ваших IP или же воспользоваться другими технологиями доступа к портам.
8. Соблюдать принцип — каждый сервер для своего назначения, не нужно в один пихать все сервисы — почту, днс и т.п.
9. Разные пароли на разные доступы!!!
10. Не использовать на серверах ОС Windows.
11. Только лицензионное ПО.
Скриптик закинуть в корень и запустить, поменяв в нем абсолютный путь на свой. Можно запускать наверно из запароленной директории, если собираетесь его оставить на сервере.
Конечно стоит проверить на тестовом, но вроде все работает.
<?php $dir = '/бла/бла/бла/бла/public_html/';// абсолютный путь class check_perms { function check_perms($curpath){ if($curpath){ while ($file = $dir-> read()){ if($file != "." && $file != ".."){ $this-> check_perms($curpath.$file."/"); if($perms>775 || $perms<775){ $this->perms_d775 .= $curpath.$file."\n"; } } }else{// файл if($ext['0']=='php' && ($perms>664 || $perms<664)){ $this->perms_f664 .= $curpath.$file."\n"; } }else if($ext['0']!='php' && ($perms>664 || $perms<664)){ $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>'; } ?>
Вроде все работает, но все же проверьте на тестовом любом, с любыми файлами выставив им сначала 777 допустим.
Отказ от ответственности и тд и тп, мопед не мой)))))
когда можно было бы сделать компонент "безопасность" все это запускает и выводит админу инфу(который при необходимости и логи читает)
отличная мысль на счет отдельного компонеyта, помню подобная разработка была еще на php-nukeкомпонент "безопасность"
3. После чего на директории /images, /upload, /cache, и всех вложенных в них выставляем права 777.
Начал на эти папки менять права на 777 и окончательно запутался.
Например, в папках images и upload есть куча вложенных папок, в которых есть также вложенные папки — в них также менять права на 777 или не надо?
Там, например, в папке upload есть папка forum, с каждым новым сообщением на форуме в ней создается новая папка с правами 755. Это получается, что мне каждый день только в эту папку нужно залазить и менять права на 777 на каждую новую созданную тему?
Что-то тут не вижу логики.
Объясните пожалуйста.
Например, images/users/photos/medium
В папке images есть куча папок, в которых также есть папки, в которых также есть папки и в которых также есть другие папки.
даЯ так и не понял, нужно ли менять права на 777 на папки, которые находятся во всей глубине:
find /var/www/site.ru/ -type d -exec chmod 777 {} \;
хоть там и стоит инстант 1.9 версии — но он пока не причем.