2009-04-02 2 views
0

Возможно ли установить мелкозернистые разрешения с помощью Apache или nginx? Учитывая большое количество файлов и большое количество пользователей, каков хороший способ указать, что каждый пользователь, прошедший проверку подлинности, имеет доступ к своим собственным файлам?Права доступа к файлам Apache/nginx (размер файла)?

user_a can access file_a_1, file_a_2 
user_b can access file_b_1 
user_c can access file_c_1, file_c2, file_c3, file_a_2 

Это статические, только для чтения файлы (по большей части). Представьте себе файловую систему, такую ​​как управление доступом, но с http. Нет веб-dav; это часть веб-приложения; изображения будут отображаться как часть страницы пользователя в браузере. Я хочу убедиться, что никто не сможет увидеть изображение, даже если он найдет для него URL-адрес.

ответ

0

Не совсем уверен, что вы ищете. Нужны ли этим пользователям права на запись или файлы доступны только для чтения? Являются ли эти статические файлы?

+0

Обновлен вопрос с разъяснениями. – Parand

1

Ugh. Если не написать собственный обработчик проверки подлинности, я сомневаюсь, что есть простой способ сделать это, по крайней мере, с Apache.

Если бы lighttpd были опцией, я бы, вероятно, выполнил проверку безопасности в PHP-скрипте, и если все будет проверено, добавьте заголовок X-LIGHTTPD-send-file в ответ. Это означает, что lighty сделает всю передачу файлов, не пройдя через PHP.

(Быстрый прибегая к помощи показало, что апач должна поддержка что-то подобное с X-sendfile, но я не смог получить что-нибудь об этом из документации Apache.)

редактировать: Видимо, вы можете сделать нечто подобное с Apache и mod proxy scgi.

+0

andri, спасибо, это похоже на хороший путь. Я помню, что читал что-то подобное для nginx; Я считаю, что вы можете запустить скрипт и на основе результата подать файл. Позвольте мне вникать в это немного. – Parand

1

Я понимаю, что я necroposting здесь, но только для будущих Googlers,

Вот аналогичный вариант Nginx для решения Андри в:

http://blog.kovyrin.net/2006/11/01/nginx-x-accel-redirect-php-rails/

http://wiki.nginx.org/NginxXSendfile

... и то же самое для Apache, по-видимому:

http://tn123.ath.cx/mod_xsendfile/

+0

Спасибо за (necro-) публикацию этого, я сделал google, нашел его и ваше решение * did * help! Пальцы вверх! –

Смежные вопросы