Псевдо chown( ) - смена владельца файла на учетную запись от кого запущен PHP

antson

Новичок
Партнер клуба
Псевдо chown( ) - смена владельца файла на учетную запись от кого запущен PHP

Исходная задача обойти ограничение пхп в safe mode связанное с тем что папки и файлы нельзя удалять , если они заливались по фтп.
Простейшее решение проблемы через смену владельца для файлов требует шеловского доступа с правами supervisor'а в 99.99% процентов случаев на чужой площадке недоступно .

- Зачем это нужно ?
- Есть файлы для downloda и при смене площадки заливать их заново через админку накладно.

(отступление:
например move_uploaded_file() - решает обратную задачу, т.е. позволяет получить доступ к файлом где владелец учетная запись от которой запущен апач
)


Как я вижу решение проблемы:
Скрипт с условным названием php_chown


Входные параметры :
- путь к папке где требуется сменить онера (чекбокс что требуется рекурсия по подпапкам)
- входные от фтп аккаунта
- чекбокс, что нужно оставить исходную папку как бекап
- опционно чмоды

Логика работы
1. исходная папка переименовается с дописыванием _backup
2 в рекурсивном цикле идет обход исходного дерева(переменованного) через методы фтп
папки и файлы заново создаются через файловые функции PHP
(при отсутвии выбора в чекбоксе о сохранении копии после копирования в исходном месте файл удаляется - чтобы не перебрать дисковой квоты , если обрабатываемая папка больше 50% отведенного места)


3. Опционом желательно еще обработка двух параметра chmod для вновь созданого дерева и для бекапа.
4. Почистить хвосты от бекапа, если он не требовался.


---- Что хотелось от членов клуба -------
1. Попадался ли вам такой скрипт ?
1.1. Ткните носом в ссылку .
2. Есть ли у кого такой готовый скрипт () ?
2.1. Есть ли желающие поделиться им безвозмездно :) ?
Если ответы на п.1.1 и 2.1 отрицательные, то
3. Есть люди кому требуется такое же ?
3.1. Есть ли желающие поддержать материально такую разработку ?

з.ы. написать такое могу . просто свободного времени мало. Жалко его тратить без 3.1 :)
3.ы.ы. Да и скрипт имхо из разряда велосипедов.

-~{}~ 30.11.06 13:20:

в общем задуча решается штатными средствами.
1. переименоваем фтп клиентом директорию как бекап
2. даем на папку где расположена нужная нам директория временно 777
3. находим любой файловый менеджер написанный на пхп с возможностью копирования папок со всем содержимым и делаем копию бекапа в папку с исходным именем.
4. меняем чмод на тот что стоял
5. Бекап стираем через фтп или файловым менеджером до п.4
6. правим скриптом права на папке и в подпапках (если после файлового менеджера они Вам не подходят)
Такой скрипт можно найти почти у любого хостера в FAQ (возможно его придеться поправить, так как он обычно настроен на смену к правам 777)
 
Сверху