Доступ к пользовательским файлам на сервере

Angel Echo

Guest
Доступ к пользовательским файлам на сервере

При регистрации на сайте пользователя с логином "login", в корневом каталоге на сервере создается директория с именем "login" и в нее кидается скрипт "index.php", отвечающий за формирование страниц пользователя. В директории "login" пользователь может в дальнейшем создавать поддиректории и закачивать в них файлы. При создании и редактировании содержимого директорий приходится сначала изменять права лоступа к ним по ftp:
1. устанавление ftp-соединения
2. смена прав на 777
3. работа с директорией
4. смена прав на 755
5. разрыв соединения
Вот так замутно, к тому же корневая директория ftp и www как водится не совпадают и, если есть функция допустим удаления файла, приходится в ней иметь две константы FTP_ROOT и WWW_ROOT :( Первая для смены прав доступа, вторая - для удаления файла ! Как этого избежать, может я чего-то криво делаю, подскажите, если можете ?
 

fixxxer

К.О.
Партнер клуба
а зачем тебе доступ к этим файлам по ftp?
работай с ними только через php и проблем не будет
 

Angel Echo

Guest
А как пользователю сайта создать свою директорию в корне сервера, прав то у него нет, только через php-шные функции файловой системы их не получишь :( ?
 

fixxxer

К.О.
Партнер клуба
а зачем в корне? :)
один раз напряги админа, чтобы он сделал

mkdir ТВОЙ_DOCUMENT_ROOT/users
chown nobody ТВОЙ_DOCUMENT_ROOT/users

а лучше найди нормальный хостинг, где подобных проблем нат вообще.
 

Angel Echo

Guest
А чтоб у пользователя была страничка по адресу www.сайт.ru/login/index.php !!!
 

Angel Echo

Guest
Допустим, но а такая ситуация - xml-файлы пользователей хранятся в директории не доступной через web, как пользователю их редатировать, доступа то нет ? Вот по ftp и приходится давать доступ :(

-~{}~ 14.04.05 17:40:

Пока реализовано так:
1. Пользователь запускает php-скрипт (типа редактор xml-файлов)
2. php-скрипт получает доступ через ftp-функции к xml-файлу
3. пользователь редактирует считанный с помощью php xml (на основе DOM-функций)
4. php-скрипт сохраняет измененный xml в файл опять же сначала получив доступ к ниму с помощью ftp

-~{}~ 14.04.05 17:43:

Может можно как-то подругому сберечь xml файлы от доступа посторонних, кроме как держать их в недоступной через web директории ?
P.S. В базе данных XML не держим !
 

SNiP

Новичок
Допустим, но а такая ситуация - xml-файлы пользователей хранятся в директории не доступной через web, как пользователю их редатировать, доступа то нет ? Вот по ftp и приходится давать доступ
Честно говоря так и не понял зачем ftp.
не доступно через веб != не доступно для php скрипта.
Если надо редактировать xml файл, считываешь его своим php скриптом (тот который типа редактор xml-файлов), правишь и затем перезаписываешь измененый файл.
Для адресов пользовательских страничек, как уже сказал fixxxer используй mod_rewrite.

могу предположить надобность ftp только в одном случае, если файлы не доступны для редактирования из под nobody (в общем под чем крутится сервер) и эту недоступность (по непонятным для меня причинам) нужно обязательно сохранить. Но думаю что это уж очень тупо, или я чего-то не понял.
 

Angel Echo

Guest
Что ж тут непонятного, вот например метод DomDocument->dump_file(filename) при попытке сохранения xml пишет Permission denied для файла filename, если у директории, в которой он лежит права 0755 и создана она админом !!! А вот если мы сделаем перед этим вот так: ftp_site($Connect_id, 'CHMOD 0777 /путь_к_директории')), то все в порядке ! Только вопрос в том, безопасно ли держать директории с правами 0777 ?
 

SNiP

Новичок
Значит я все правильно понял, это очень тупое решение.
Делай так:
mkdir ТВОЙ_DOCUMENT_ROOT/users
chown nobody ТВОЙ_DOCUMENT_ROOT/users
и держи все свои xml файлы в этой папке.
 
Сверху