Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Помогите разобраться с закачкой файлов - правами


Автор: ura 3.6.2004, 15:38
Юзеры авторизуются через скрипт.
надо дать возможность закачивать свои картинки,
написал я соответствующий скрипт, сделал папку uploads на сервере
у каждого есть своя подпапка в ней, названая ID юзверя.
Но для того чтоб файл можно было закачать, надо этой подпапке назначит права 0777
Так это ,что получается, любой гость сможет грохнуть файлы вместе с папкой или своих файлов еакачать без авторизации?
Что-то никак не могу разобраться с этим

Автор: MuToGeN 3.6.2004, 16:09
Цитата
Но для того чтоб файл можно было закачать, надо этой подпапке назначит права 0777
Надо найти нормальный хостинг, а не 777 давать...

Добавлено @ 16:10
Цитата
Так это ,что получается, любой гость сможет грохнуть файлы вместе с папкой или своих файлов еакачать без авторизации?
Да, любой, кто получит доступ (либо FTP, либо какой-нить web file manager, либо shell)

Добавлено @ 16:11
ЗЫ А под какими правами и с каким владельцем сохраняются сами фаилы?

Автор: IZ@TOP 3.6.2004, 16:25
Цитата
Так это ,что получается, любой гость сможет грохнуть файлы вместе с папкой или своих файлов еакачать без авторизации?
Что-то никак не могу разобраться с этим

Без авторизации ни как. Если только не найдет дырку в твоем скрипте и не воспользуется ею.

Автор: ura 4.6.2004, 11:26
Цитата
ЗЫ А под какими правами и с каким владельцем сохраняются сами фаилы?


Файлы сохраняются под 755

так все-таки
Цитата
Да, любой, кто получит доступ (либо FTP, либо какой-нить web file manager, либо shell)


или

Цитата
Без авторизации ни как. Если только не найдет дырку в твоем скрипте и не воспользуется ею.


Автор: IZ@TOP 4.6.2004, 13:19
Я бы сказал так:Да, любой, кто получит доступ к FTP, либо какой-нить web file manager, либо shell.

Автор: Chuck 4.6.2004, 15:29
1. Решение, если ты админ, то ты можешь создать массу групп = кол-ву твоих пользователей, но это глупо и не реально, хотя если получится smile.gif работать будет так как задумал!
2. Решение. Создай папку тмп и туда пусть закачивают файлы, а ты потом сам или через скрипт будешь их расфасовывать!!!
3. Решение - создать скрипт с правами админа (который может менять права доступа). Открываешь сессию. Запускаешь скрипт - он меняет права доступа с root на user допустим, только для одной папки. После закачки, этот же скрипт меняет права назад - с user на root smile.gif
Мудренно, но возможно!!!
Я не знаю, прав ли я, но вот так я представляю решение этой задачи, причем их придумывал экспромтом! А вообще посмотри, как это делается у профессионалов (скачай, какой нить файловый web менеджер)

Автор: MuToGeN 4.6.2004, 15:53
Если ты - админ, то ставь апачевый модуль для suexec-а (как точно называется - не помню).
Цитата
А вообще посмотри, как это делается у профессионалов
Тот же suexec. Или PAM авторизация.

Добавлено @ 15:54
ЗЫ Что это дает: скрипты запускаются от имени владельца скрипта. Тогда права можно ставить 700 и никаких проблем не будет.

Автор: ura 5.6.2004, 21:10
Цитата
Я бы сказал так:Да, любой, кто получит доступ к FTP, либо какой-нить web file manager, либо shell.

т.е. если такой доступ имею только я, а файлами юзер управляет только через мой скрипт, все ОК?

Автор: MuToGeN 6.6.2004, 01:10
Обычно на таких хостингах доступ может получить любой зарегестрированный там пользователь (после нескольких хитрых телодвижений)

Автор: ura 7.6.2004, 11:48
Цитата

3. Решение - создать скрипт с правами админа (который может менять права доступа). Открываешь сессию. Запускаешь скрипт - он меняет права доступа с root на user допустим, только для одной папки. После закачки, этот же скрипт меняет права назад - с user на root

это наиболее подходит в моей ситуации, только как это сделать ?
как кнкретно я могу создать скрипт с правами админа?

Автор: Master 7.6.2004, 12:18
ura
обычно скрипты могут что хотеть то и воротить в пределах твоего аккаунта.
так вот... пишеш перед закачкой файла:

Код
chmod("/dir", 777);


а после закачки таким же методом возвращаеш права на место.

Автор: MuToGeN 7.6.2004, 14:25
А вот тут нюанс - в 90% случаев ftp работает с нормальной PAM атворизацией, а вот апач - нет. Результат: папка, созданная по FTP, имеет права 755, владелец и группа - персонально твои. А скрипты гонятся из-под apache (имеется в виду системный пользователь) или из-под nobody. А чтоб сменить права, ты должен обязательно быть владельцем папки (или, конечно, root-ом).

Автор: yUAC 9.6.2004, 20:32
Короче говоря, ставь 777 и не парься. Если тебя кто-то взломает, обратись к хостеру. Могу посоветовать PeterHost (это НЕ РЕКЛАМА!!), у них PHP-скрипты и Apache (видимо) запускаются от имени пользователя, и есть доступ к shell-командам

Автор: MuToGeN 9.6.2004, 20:55
Цитата
...(видимо)...
Код
<?php
exec("whoami",$out);
print_r($out);
?>
Что выдаст?

Автор: ura 10.6.2004, 13:58
спасибо всем за помощь,
вообщем пока ставлю 777, а потом может хостинг сменю.
Найду где моим скриптам дают полные права в пределах моего эккаунта, не знаю как на ПХП, но я такое на перле точно встречал.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)