2013-01-07 145 views
0

因此,我正在尝试开发一个脚本,其中所有用户都可以将图像上传到动态创建的文件夹。无法使用mkdir创建目录

这是我所做的。

$newID = 1 
mkdir('uploads/job_images/'.$newID.'/',0755); 

这会在已经设置好的“uploads/job_images”中创建一个文件夹。

我的问题是,如果“作业图像”权限设置为755或766,它不会让我创建一个目录。 但是当我尝试将“job_images”权限设置为777时,它允许我创建一个目录。但他们说777是安全风险。为什么你认为如果权限设置为755,我不能在“job_images”内创建文件夹,但如果“job_images”权限设置为777,允许我在“job_images”内创建文件夹?

创建的文件夹还具有设置为99/99(无人)的“所有者/组”。那个车主组合好吗?

问题:

  1. 我能做到这一点,而无需使用777“job_images”文件夹或者把它留给777的好吗?
  2. 我是否需要更改创建的文件夹的所有者?我可能有一天需要删除这些文件夹。
  3. 如何默认由网站用户创建的文件夹组?
+0

什么用户/组下运行您的Web服务器?如果不是99/99,请尝试将文件夹的所有权设置为您的网络服务器用户/组 – PassKit

+0

不知道更多。但是有没有需要的权限? –

回答

0

尝试使用sudochown改变你的目录到Apache(或运行代码:)任何软件/服务/守护所有权。如果您是该目录的创建者,则不需要使用sudo(但在大多数Unix/Linux系统中,您还需要拥有目标组权限)。请参阅Numeric Notation of filesystem permissions。前7表示所有者组有权读取,写入和执行您的文件。 5意味着阅读&执行,不写,所以你不能建立新的目录。

+0

你好,我没有访问根。我只有一个来自托管服务提供商的重新销售帐户。每隔不久的时间新文件夹都由不同的用户创建,这是否意味着我需要每隔一段时间更改那些新创建的文件夹的组所有者? –

+0

嗨,如果你是文件的所有者 - 你仍然可以使用chown命令来更改所有者。在大多数Unix/Linux系统中,您还需要具有目标用户/组权限。 – Infinity

+0

“5表示读取并执行,无需写入,因此您无法创建新目录。” 那么这意味着如果该文件夹设置为755,没有其他方法可以在文件夹内创建新目录?对不起,我是新手。 –