Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как поменять права на директорию и ее содержимое?
 
 автор: antf   (16.03.2007 в 04:00)   письмо автору
 
 

Здравствуйте.
У меня такая проблема: меняю права на директорию cuteftp, но это действие не затрагивает поддиректории и файлы.

Попытка использовать функцию также окончилась провалом:
<?
function dirchmod($catalog)
    {
      
$dir opendir($catalog);
      while((
$file readdir($dir)))
      {

     if(
is_file($catalog."/".$file))  chmod($catalog."/".$file0777);
        else if (
is_dir($catalog."/".$file) &&
                (
$file != ".") &&
                (
$file != "..")) { chmod($catalog."/".$file0777); dirchmod($catalog."/".$file); }
      }
      
closedir($dir);

    }
?>


Как же поменять права на директорию и ее содержимое?
Заранее спасибо.

   
 
 автор: Trianon   (16.03.2007 в 09:46)   письмо автору
 
   для: antf   (16.03.2007 в 04:00)
 

А у скрипта на данный момент есть права писать в каталог?

   
 
 автор: antf   (18.03.2007 в 18:38)   письмо автору
 
   для: Trianon   (16.03.2007 в 09:46)
 

А как это проверить?

   
 
 автор: Trianon   (18.03.2007 в 20:16)   письмо автору
 
   для: antf   (18.03.2007 в 18:38)
 

получить идентификаторы getmyuid(), getmygid(), posix_getgrgid()
и поглядеть от имени кого исполняется скрипт.

   
 
 автор: antf   (18.03.2007 в 21:07)   письмо автору
 
   для: Trianon   (18.03.2007 в 20:16)
 

Первые две функции выдают пятизначные цифры. Третья выдает false. Подскажите, пожалуйста, как сделать так, чтобы index.php мог менять права на все файлы и кателоги сайта. Получается комичная ситуация у меня скрипты создают файлы , с которыми даже ftp-клиент ничего не может поделать (например пользователь загрузил аватар, а поменять его уже не может даже через cuteftp).

   
 
 автор: antf   (18.03.2007 в 21:16)   письмо автору
 
   для: antf   (18.03.2007 в 21:07)
 

Вот такое сообщение вылезает при попытке войти в директорию 11

   
 
 автор: Trianon   (18.03.2007 в 21:27)   письмо автору
 
   для: antf   (18.03.2007 в 21:07)
 

Это всего лишь означает, что пользователь, зарегистрировавший ftp-сеанс, и пользователь, от имени которого исполняется php-процесс - разные пользователи. И единственной схемой наделения скрипта правами менять файлы и каталоги может быть схема, при которой права даются не владельцу файла, не группе файла, а всем остальным - это последние три бита в маске chmode.

Как менять права конкретно в cuteFTP я не подскажу - работал с ним больше 10 лет назад.
Но в любом приличном клиенте есть возможность посмотреть и маску прав и группу и владельца файла. И поменять, конечно. В cuteFTP - однозначно есть, благо клиент солидный.

   
 
 автор: antf   (19.03.2007 в 17:39)   письмо автору
 
   для: Trianon   (18.03.2007 в 21:27)
 

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

Еще одна проблема состоит в том, что cute ftp меняет права на директорию, а на поддиректории и вложенные файлы это действие не распространяется... Может у меня там 500 вложенных директорий с 500000 файлами.

   
 
 автор: cheops   (20.03.2007 в 02:59)   письмо автору
 
   для: antf   (19.03.2007 в 17:39)
 

Рекурсивно можно спуститься по дереву каталогов скриптом или, если вам доступна системная команда chown использовать ключ -r (в FTP это, к сожалению, не доступно).

   
 
 автор: Trianon   (20.03.2007 в 10:08)   письмо автору
 
   для: cheops   (20.03.2007 в 02:59)
 

Протокол ftp вроде как дает фозможность выполнять одиночные команды? Почему недоступно?

   
 
 автор: cheops   (20.03.2007 в 11:45)   письмо автору
 
   для: Trianon   (20.03.2007 в 10:08)
 

Могу ошибаться, но помоему не все FTP-сервера поддерживают такие расширенные команды. Большинство FTP-клиентов даже не пытается предоставлять рекурсивные возможности по смене прав доступа.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования