繁体   English   中英

我需要让我的网站用户上传图片 - 我可以在不将文件夹权限设置为777的情况下执行此操作

[英]I need to enable users of my site to upload images - can i do it without setting the folder permissions to 777

所以,基本上问题出在标题和更详细的场景中:

我有一个用PHP编写的站点后端(在linux服务器上 - centos 6),我实际上只有2个用户可以访问它。 他们需要能够通过某种形式上传图像。 所以,我制作了简单的上传脚本,但不管是什么(或者无知要知道:/),上传仅适用于设置为777的文件夹权限,所以我的问题是这样可以,或者我应该实现更好的'在这种情况下的常见做法?

您不需要777处的目录权限。您需要确保Web服务器用户可以写入该目录,这意味着使其由Web服务器用户拥有,或者由其组设置为的其他用户拥有Web服务器用户和组可写权限。

因此,如果您的Web服务器用户是例如www-data (其他常见的可能性包括apache, httpd, www ):

# Set ownership to the web server user
chown www-data uploads_dir
# and make it writable by the web server user
# could also be 755 (readable by others)
chmod 700 uploads_dir

或者,如果它必须由您的帐户用户(例如,在共享主机上)保留,请将该组设置为Web服务器用户:

chown youruser:www-data uploads_dir
# and make it group-writable:
chmod 775 uploads_dir

最重要的是,将777(全局可写)权限分配给目录通常不是一个好主意。 此外,理想情况下, uploads_dir应放在Web服务器的文档根目录之外,因此它不是可用的vit HTTP请求。

您还可以使用suphp之类的东西以用户身份运行php脚本,同时保留让文件夹不能由任何其他用户或组写入的功能。

但是,您需要对您的Web服务器进行管理访问。

解决方案是使用FastCgi。

这使得新文件和目录由同一用户和组拥有。

FastCgi存在性能损失,但是由于它限制了php,因此您获得了一些额外的安全性。 如果您托管多个用户的多个网站,这可能是一个好主意。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM