Apache / nginx细粒度(每个文件)权限?

时间:2009-04-02 23:28:39

标签: apache authentication permissions authorization 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。没有web-dav;这是网络应用程序的一部分;图像将在浏览器中显示为用户页面的一部分。我想确保没有其他人能够看到图像,即使他们可以找到它的网址。

3 个答案:

答案 0 :(得分:1)

唉。如果没有编写自己的身份验证处理程序,我怀疑有一种简单的方法可以实现这一点,至少对Apache来说是这样。

如果lighttpd是一个选项,我可能会在PHP脚本中实施安全检查,如果所有内容都检出,请在响应中添加X-LIGHTTPD-send-file标头。这意味着lighty将在不通过PHP的情况下完成所有文件传输。

(一个快速的谷歌搜索显示,apache 支持X-sendfile这样的内容,但我无法从Apache文档中获得任何相关信息。)

编辑:显然你可以用Apache和mod proxy scgi做类似的事情。

答案 1 :(得分:1)

我意识到我在这里进行了解决,但仅限于未来的googlers,

以下是andri解决方案的类似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/

答案 2 :(得分:0)

不完全确定你要做什么。这些用户是否需要写入权限,或者文件是否为只读?这些是静态文件吗?