sys进程的用户无法写入sys_get_temp_dir()的结果

时间:2013-05-04 20:48:52

标签: php apache unix permissions assetic

我一直在使用Assetic和YUICompressor来缩小和连接js / css。

我在查找正确的写入权限时遇到了问题,该权限适用于我的本地测试环境以及Asset的依赖的PHP sys_get_temp_dir()的结果。

我使用MAMP来管理我的测试环境,并且根据MAMP团队的建议,我将Apache作为用户'_www'运行,这是一个问题,因为sys_get_temp_dir()返回的文件夹已将权限设置为我的本地用户。

例如,sys_get_temp_dir()将返回类似

的内容

/private/var/folders/41/t37ngfqd1m7dczjdr91s5vb40000gn/T

具有权限

drwx------ 8 myname staff 272B May 4 13:23 T

到目前为止,我唯一能做到的就是做chmod 777,这可以保证个人的不幸和来自RTM人群的抨击。我明白了,这是宽容的,但我无法找到合适的权限,允许_www以可预测的安全方式写入sys_get_temp_dir()返回的文件夹。

我已经尝试过(我只能猜测它仍然很糟糕,但略低于777):

  • 转到Finder(是的,OSX)右键单击-get-info /private/var/folders/目录并递归授予_www读/写权限 - 不起作用
  • 尝试将_www添加到'wheel'和'staff'组中。不起作用,因为(如上所述)返回的文件夹仅 可由用户myname写入(即使/private/var/folderswheel组拥有并且确定文件夹归staff组所有)

所以,如果我不能将_www添加到一个组,并且我不能递归地对该文件夹进行ACL,我是否必须以用户myname运行MAMP?我必须要做一些Unix-fu?

1 个答案:

答案 0 :(得分:0)

您的文件夹只拥有所有者的权限,换句话说drwx ------表示与700相同。文件夹所属的组是工作人员,因此您可以将_www添加到组员工,或更改该文件夹的组为_www。此外,您还需要设置组权限,因此如果您想要对组进行读写和执行权限,则可以将权限设置为770.权限代码的第二个数字是组权限。