4

我正在使用 CodeIgniter 的上传助手并在尝试上传图片时收到上述错误。我要上传到的文件夹的权限是 755。当我将其更改为 777 时,错误消失了,但 777 不是一种安全风险吗?

我在 Apache 上运行。有没有更好的方法让用户在不将文件夹权限设置为 777 的情况下上传文件?我怎样才能让 755 工作?

谢谢您的帮助!

4

5 回答 5

12

如果该文件夹用于由用户加载文件,则需要权限 777。

由您来验证通过上传脚本加载了哪些文件。您还可以使用 .htaccess 来允许或不允许从该目录执行某些文件。

在 codeigniter 中上传的文档非常简单直观。您还可以在这里查看一些验证上传文件类型的方法https://codeigniter.com/userguide3/libraries/file_uploading.html

于 2013-10-17T17:38:31.277 回答
4

在我的NGINX + PHP-FPM安装中,将 SElinux 参数从更改enforcingpermissive

使用应用选项编辑和更改选项, vi /etc/selinux/config 无需重新启动,使用sudo setenforce 0 检查状态sestatus

于 2016-03-06T16:48:10.763 回答
4

我不认为在服务器 777 上授予任何文件夹权限是好的。相反,我建议将 www-data 用户设置为所需文件夹的所有者并给予 755 权限,而不是给予 777 权限,如下所示

chown -R www-data:www-data /var/www/html/uploads/

755权限

chmod 755 -R /var/www/html/uploads/
于 2018-06-04T07:11:30.730 回答
1

尝试这个:

sudo chmod 777 -R /path/to/write/folder

于 2013-10-24T13:26:30.793 回答
0

我知道这不是一个活跃的问题,对大多数人来说可能不是问题,但因为我遇到了这个问题,所以我想向其他可能看到这一点的人澄清一下。

您的上传目录不需要 777 权限。这实际上不是一个好主意。最后 7 表示它是可公开写的,在大多数情况下不需要。通常755应该足够好

问题很可能是该目录不属于自己,但运行 Apache 的用户通常是 www-data

一步步:

检查目录的所有者(即)

ls -l /path/to/upload/

输出应该显示类似

drwxr-xr-x  4 www-data www-data     4096 Oct 26 20:41 uploads

如果不是,那么如果这是运行 Apache 的用户,则应更改为 www-data。要检查 apache 在哪个用户下运行:

 ps aux | egrep '(apache|httpd)'

这应该列出类似的内容:

 www-data   419  0.0  0.9 556292 156656 ?       S    18:46   0:00 /usr/sbin/apache2 -k start

希望这可以帮助!

于 2020-01-24T01:51:05.573 回答