我有一个PHP Web应用程序(在Apache / Linux上运行),除其他外,它允许浏览Web服务器上的本地文件。由于Apache作为一个特殊的“www”用户运行,因此PHP可以访问“www”可以访问的所有内容,无论用户登录到应用程序。
根据登录用户的Unix文件系统权限限制文件访问的最佳方法是什么?理想情况下,我可以生成一个新进程,用户ID是登录用户,但我不确定这是否可行。或者,是否有一个标准的PHP库,它将执行权限检查和访问文件?
答案 0 :(得分:2)
我不明白你的意思,因为访问文件的用户是PHP用户,而不是请求你的页面的普通用户(你没有用SSH连接到你的服务器)
您可能希望在应用程序之上实现ACL以管理此权限。
当然,Zend有解决方案:http://framework.zend.com/manual/en/zend.acl.html
答案 1 :(得分:0)
这可以通过三个步骤完成:
答案 2 :(得分:0)
您可以查看http://httpd.apache.org/docs/2.0/suexec.html它应该执行您需要的操作,而无需在应用程序中保留单独的用户和权限。
据我所知,此扩展是在一些(如果不是全部)共享主机服务上实现的,用于控制如何在用户之间划分资源。
这将导致脚本无法由www-data(但由系统用户)执行,并且PHP不作为模块运行(通过CGI / fastCGI机制)。