另一个文件权限问题

时间:2010-08-14 14:47:20

标签: php javascript linux security image

我有一个分类广告网站,当用户发布新的分类广告时,他们可能会选择上传图片。

我的php代码获取所选图像,将其上传到图像文件夹,并相应地命名。

问题在于,我必须将images文件夹设置为777才能使其正常工作。

我的问题是,应该将权限设置为什么?任何想法为什么它不工作,如果不是777?

如果您需要更多输入,请告诉我......

由于

更新

我有一个具有root访问权限的用户(danny)... 上传图像的文件夹以及具有魔力的“image_upload.php”文件由用户“danny”拥有。然后我尝试将它们设置为chmod 764,但是当我这样做时,我遇到了问题。

看,似乎我必须为“公共”设置r + w + e权限才能使一切工作。

无法弄清楚原因......

再次感谢

3 个答案:

答案 0 :(得分:1)

  

还有任何想法,为什么它不起作用?

除权限外,请务必为:

指定正确的设置
  • file_uploads
  • 的upload_max_filesize
  • memory_limit的
  • 的max_execution_time
  • 的post_max_size

请参阅:

同时确保:

  • 您已在enctype="multipart"
  • 中指定了form
  • 使用print_r($_FILES);
  • 检查文件数组

答案 1 :(得分:1)

忘记启示录,777是野兽的真实号码: - )

您几乎从不需要以这种方式设置权限。当然,您的图像是在单个用户ID(例如php

)下的目录中创建的

如果是这种情况(应该是这样),您只需要将该用户添加到该目录的特定组并允许组写访问764,尽管最后一位可能会根据其他需求。

您可以通过更改上传脚本来确定正在运行的用户:

system ("id >/tmp/id.txt")

或PHP中用于运行命令行工具的等价物。

然后查看/tmp/id.txt文件以获取详细信息。你会有类似的东西:

uid=1000(php) gid=1000(phpgrp) groups=1000(phpgrp)

一旦找到(php),找出该images目录的组:

pax> ls -ald images
drwxr-xr-x 4 pax paxgrp 4096 2010-06-14 16:38 images

这将是上述成绩单中的paxgrp。然后确保php用户已添加到paxgrp组。这通常可以通过更改/etc/group来完成,例如:

paxgrp:x:1027:bob,george

成:

paxgrp:x:1027:bob,george,php

然后确保目录权限允许组(但世界)写入。


而且,根据您的更新,拥有您的PHP文件实际上并不重要,只有谁正在运行它,而且可能不是{{1}毕竟。

否则,我可以删除硬盘上的任何文件,因为danny归root所有: - )

找出该用户的最快捷方式是更改该文件,以便按照我的建议输出rm信息。

答案 2 :(得分:0)

这里的答案很棒,我只想添加另一种可能性。您提到用户“Danny”具有root访问权限,而此Danny拥有文件/目录。使用非CLI PHP脚本,Web服务器用户应该拥有该脚本,然后您不需要公众能够读取写入和执行(老实说,如果你做得对,你应该能够设置权限700仍然可以 - 虽然它通常从来没有受到限制)。