Управление доступом к файлам и каталогам

Как управлять PHP файлами, созданными с пользователем apache и с правами 600.

PHP -сценарии, запущенные модулем mod_php, выполняются от имени пользователя apache . Соответственно, если на чтение/запись не были выставлены разрешения для всех (достаточно 644 - для файлов, 755 - для каталогов), то модификация созданных такими скриптами файлов (каталогов) пользователю будет запрещена (при доступе по SSH , по FTP ).
Для того, чтобы проблема не возникала - нужно для такого каталога (файла) установить права, достаточные для модификации файлов, посредством функции chmod.

Сделать это можно, исполнив следующий PHP-сценарий:

<?php
function chmod_R($path, $perm) {

$handle = opendir($path);
while ( false !== ($file = readdir($handle)) ) {
if ( ($file !== ".") && ($file !== "..") ) {
if ( is_file($file) ) {
chmod($path . "/" . $file, $perm);
}
else {
chmod($path . "/" . $file, $perm);
chmod_R($path . "/" . $file, $perm);
}
}
}
closedir($handle);
}

$path = $_SERVER["QUERY_STRING"];

if ( $path{0} != "/" ) {
$path = $_SERVER["DOCUMENT_ROOT"] . "/" . $path;
}

chmod_R($path, 0755);
chmod($path, 0755);
echo $path;
?>


Разместите этот файл на хостинге, в директории, доступной Вашему веб-серверу, например, как httpdocs/chmod.php

Вызывать скрипт нужно так (в браузере):
http://ваш_домен/chmod.php?path_to_problem_dir

где path_to_problem_dir - путь, относительно DocumentRoot для данного домена (httpdocs/ в нашем примере).

Обратите внимание, что на серверах нашего хостинга по умолчанию используется FastCGI , для этого режима такие проблемы с правами исключены и описанный способ не действует.

Если у Вас возникли трудности с установкой прав на файлы и папки, обращайтесь в круглосуточную Службу технической поддержки нашего хостинга.