另一个文件权限问题

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

我的PHP代码将select的图像,上传到一个图像文件夹,并相应地命名。

这里的问题是,我必须设置图像文件夹777为了这个工作。

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

如果你需要更多的投入,只要让我知道…

谢谢

UPDATE

我有一个用户(丹尼)有根访问…图像上传到的文件夹,以及“魔术image_upload.php”文件,是由用户“丹尼”拥有。 然后我试着将它们设置为chmod 764,但是当我这样做的时候,我遇到了一个问题。

看来,我似乎要设置r + w + e权限的“公共”的一切工作。

不知道为什么…

再次感谢

忘记启示, 777真正的野兽号码:-)

你几乎不需要这样设置权限。 当然你的图像是在像php这样的单个用户ID下的目录中创建的。

如果是这种情况(而且应该是这样),则只需将该用户添加到该目录的特定组中,并允许组写入权限( 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文件并不重要,只是谁在运行它,这可能根本就不是danny

否则,我可以删除硬盘上的任何文件,因为rm属于root 🙂

找到那个用户的最快捷的方法就是改变这个文件,以便输出id信息,正如我所建议的那样。

任何想法,为什么它不工作?

除权限之外,请确保为以下内容指定适当的设置:

  • file_uploads
  • 的upload_max_filesize
  • memory_limit的
  • 的max_execution_time
  • 的post_max_size

看到:

  • 如何优化你的PHP安装来处理大文件上传

还要确保:

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

这里的答案很好,我只是想增加一个其他的可能性。 你提到用户“丹尼”有根访问权限,丹尼拥有这些文件/目录。 使用非CLI PHP脚本,Web服务器用户应该拥有该脚本,那么你不需要公众能够读写和执行(说实话,如果你做对了,你应该能够设置权限700,但仍然可以 – 虽然通常从来没有这种限制)。