微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

用于生产的CakePHP app / tmp文件夹的正确所有权和权限是什么?

我想知道以下问题的答案和解释:

>哪个用户/组应该拥有蛋糕文件
>如果不同,哪个用户/组应该拥有app / tmp文件夹? (和子文件夹)
>使用正确的用户/组,生成文件夹和文件的正确权限是什么? (如果设置正确也适用于开发)
>完成上传文件的存储以及需要为该文件夹设置的所有权/权限.应该在哪里相对于app /?

我知道777修复了错误,但我想正确设置它.

我听说如果一切正确设置,660应该足以生产.

谁需要具有读取权限,谁需要具有写入权限,是否有人需要执行?

注意:我想我找到了答案,因为没有人写好答案,我会写出来.如果你对这个主题更了解并看到错误或安全问题,请告诉我,我会纠正它们.

1)CakePHP所有权

CakePHP文件应由您(机器的用户)拥有(无论您何时登录).没有root作为所有者!

OSX:/ Users / johnsmith的johnsmith部分

Linux:/ home / johnsmith的johnsmith部分

2)app / tmp所有权.

根据CakePHP documentation

…make sure the directory app/tmp and all its subdirectories in your
cake installation are writable by the web server user.

选项1:

用户所有者需要是apache的用户.组所有者可以是您所属的组,因此您还可以通过finder / CLI访问此文件夹.没有root作为所有者!

OSX:最近在OSX上预装了Apache,而apache的用户是_www.但是,如果您不确定是否可以通过键入终端ps aux |找到它apache运行时grep httpd.最后一行是您刚输入的命令,因此请在上面查看.

现在您已了解您的apache用户,您必须将其分配给app / tmp /.您可以使用以下命令执行此操作:sudo chown -R _www app / tmp /

Linux:linux上的用户通常是带有www-data组的www-data.如果您不确定,请使用ps aux | grep httpd找出用户和sudo chown -R _www app / tmp /将所有权分配给该文件夹的apache.

选项2:

您可以将自己保留为用户所有者,但将组所有者设置为apache所属的组.认情况下,apache拥有自己的组,但您可以创建一个新组并为其添加apache.

OSX:认情况下OSX上的apache组与用户相同:_www.然后,您必须运行以下命令来获取所有权:sudo chown -R:_www app / tmp /.现在,如果您使用ls -l检查权限,您应该看到您的用户名(johnsmith)和新的组所有者 – _www.

Linux:*认情况下,apache组是www-data,因此使用相同的命令来更改所有权:sudo chown -R:www-data app / tmp /.

注意:Debian / Ubuntu使用www-data,而CentOS使用apache.

3)权限

对于要运行的站点,apache需要读取和写入而不执行.为了您访问它(假设您在拥有app / tmp的组中),如果您将使用终端/查找器手动编辑内容,您还需要读写.所有其他用户都没有任何权利.所以:

OSX和Linux:sudo chmod -R 660 app / tmp /. -R部分是为所有内部文件夹递归执行的.前6个用户所有者(OSX:_www或Linux:www-data),第二个6用于组所有者(OSX:staff或Linux:johnsmith),0用于所有其他用户/来宾.

注意:根据07.01对于CakePHP,看起来CakePHP 2.4将能够在app / tmp /中创建子文件夹,这意味着它将需要7而不是6,现在用户变为760.

4)上传文件

如果要上传文件,则需要为img / uploads文件夹或上传的任何位置设置类似的设置.所有权将相同,但权限需要具有重命名文件夹创建的执行权限.所以之前的660现在应该是760.另外,理想情况下,上传不在webroot /目录中,需要绝对路径.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐