创建目录的正确权限是什么?

时间:2014-07-18 11:43:11

标签: php linux permissions

我尝试创建目录并收到mkdir(): Permission denied错误。我查看了我试图写入的文件夹,并且它的文件夹权限设置为775。当我将目录权限更新为777时,mkdir成功。这样打开目录是个好主意吗?

3 个答案:

答案 0 :(得分:4)

仔细阅读,您将得到所有问题(当然关于ubuntu permitions)的答案

https://help.ubuntu.com/community/FilePermissions

enter image description here

使用 700 权限并将php用户设置为所有者(chown phpuser:phpuser)这种方式是一种安全的方式

enter image description here

答案 1 :(得分:2)

一般情况下,拥有具有权限777的文件夹并不是一个好主意,这是一个安全问题,尤其是当该文件夹与您的Web服务器有关时。

现在您遇到此问题的原因

php使用Web服务器(通常是用户:www-data)用户凭据来访问系统。

当权限设置为775表示“其他人”#39;没有权限写入该文件夹。一些常见权限是

777 : anyone can do anything (read, write, or execute)
755 : you can do anything; others can only read and execute
711 : you can do anything; others can only execute
644 : you can read and write; others can only read

解决您的问题的方法是将php使用的用户(例如www-data)添加到有权访问该文件的组中。虽然要注意您要访问的文件的所有者组是root,但将www数据添加到该组是一个坏主意(因为安全问题)。为了避免这种情况,您可以创建一个组(即webUsers),您可以在其中添加www-data,并通过您希望通过Web服务器访问的任何文件为该组授予权限。

根据您想要实现的目标,您可以阅读serverfault

中的这两个问题/答案

<强>更新

正如@Dave Kok在评论中正确指出的那样:

&#39;当使用这样的组时,使其成为2775,因此在创建新文件时,它将获得与父目录相同的组,而不是用户所在的默认组。&#39;

答案 2 :(得分:-1)

授予文件夹权限(775/777)取决于您要对该文件夹执行何种操作。通常,如果文件夹只包含一些只需要阅读的文件,那么775就可以了。但是,如果需要对任何文件夹进行任何类型的编写,则需要使用777进行设置。