我有一个分类广告网站,当用户发布新的分类广告时,他们可能会选择上传图片。
我的php代码获取所选图像,将其上传到图像文件夹,并相应地命名。
问题在于,我必须将images文件夹设置为777才能使其正常工作。
我的问题是,应该将权限设置为什么?任何想法为什么它不工作,如果不是777?
如果您需要更多输入,请告诉我......
由于
更新
我有一个具有root访问权限的用户(danny)... 上传图像的文件夹以及具有魔力的“image_upload.php”文件由用户“danny”拥有。然后我尝试将它们设置为chmod 764,但是当我这样做时,我遇到了问题。
看,似乎我必须为“公共”设置r + w + e权限才能使一切工作。
无法弄清楚原因......
再次感谢
答案 0 :(得分:1)
还有任何想法,为什么它不起作用?
除权限外,请务必为:
指定正确的设置请参阅:
同时确保:
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仍然可以 - 虽然它通常从来没有受到限制)。