我尝试创建目录并收到mkdir(): Permission denied
错误。我查看了我试图写入的文件夹,并且它的文件夹权限设置为775
。当我将目录权限更新为777
时,mkdir
成功。这样打开目录是个好主意吗?
答案 0 :(得分:4)
仔细阅读,您将得到所有问题(当然关于ubuntu permitions)的答案
https://help.ubuntu.com/community/FilePermissions
使用 700 权限并将php用户设置为所有者(chown phpuser:phpuser
)这种方式是一种安全的方式
答案 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进行设置。