无法保存与其他许可文件,除了777

我有一个调整大小的图像,然后保存新的图像的脚本。
我不能保存新的图像,如果原始图像没有777个权限。无法保存与其他许可文件,除了777

我知道,777是有风险的,因此使用不同的权限,如775或755什么都不做的时候。

  1. 为什么什么都不做?
  2. 如何解决?

编辑:
我希望能够用我的剧本,无论图像的权限是什么保存的文件/文件了。

回答:

这一切都是因为您的服务器配置错误,这意味着httpd以不同的用户身份运行,而不是拥有所有文件,这需要write权限集others。解决方案是修复服务器配置,以便这些用户id匹配。但是,如果您不熟悉服务器管理,这不是微不足道的。其他(但这不是一个真正的解决方案)将把这两个用户放到一个组中,这样就不会给每个人写访问权限,只会将它“限制”到你的组中。但这不是一种可行的方式。或者,如果您是服务器上的唯一用户,则可以将httpd设置为在您的userid/groupid上运行,而不是在其自身上运行。但是,这又不应该被视为一种“解决方案”。

回答:

1)创建与777权限的新文件夹。

2)将图像保存在该文件夹中。

我不认为你会需要原始图像777。

为了安全,你需要:文件上传

A)核对扩展和调用自定义调整大小/图像功能。这将确保文件始终转换为图像。

B)[的.htaccess](您用户上传图片的目录)=

#Disable directory indexes & folder listing 

[deny any file other than image]

<Files ^(*.jpeg|*.jpg|*.png|*.gif)>

order deny,allow

deny from all

</Files>

回答:

您可以尝试之后文件模式,但它强烈地依赖于PHP守护进程所拥有的权利内;

chmod("/somedir/somefile", 755); 

With fileperms()您可以获取创建的文件的当前权限。

回答:

您可以在Apache配置文件中重新设置UserGroup参数,使其作为另一个用户运行。

回答:

您的Web服务器在拥有图像的用户以外的用户下运行。要找出哪个用户是你的网络服务器运行,创建并运行这个PHP脚本

<?php 

echo shell_exec('whoami');

?>

以上是 无法保存与其他许可文件,除了777 的全部内容, 来源链接: utcz.com/qa/266118.html

回到顶部