【发布时间】:2016-02-02 01:23:43
【问题描述】:
我需要在 Pimcore 中添加批量对象创建。首先我尝试使用 web,但由于 set 的大小,Request 花费了很长时间,并且实际上丢弃了方法。
然后我选择了 cron 来安排以后的工作,但我遇到了其他问题。与其他一些 RAD 应用程序一样,pimcore 会在 /website/var/versions 等文件夹中自动生成一些代码。所以这些文件夹会自动获得网络用户的权限(在我的例子中是 apache 用户)。
但我的 cron 脚本由普通用户运行,该脚本执行 Pimcore API 调用以创建对象/数据,但由于权限不足而无法写入文件夹。现在我可以选择两种选择之一。
- 通过 apache 用户运行 cron,出于安全原因,这是绝对不行的。
- 授予可写权限( chmod 777 喜欢或使用 chown 将我的用户添加到 apache 组)。但是 pimcore 在从浏览器管理时会不时创建新文件夹。所以这些新文件夹没有 cron 脚本写入的权限(权限最大 755,我得到的新文件夹不足以进行组写入)。
我之前在 google 上搜索过,发现命令 setfacl 用于设置文件夹的默认用户/权限。我就是这样用的。
`sudo setfacl -Rm u:apache:rwx,d:u:apache:rwx website/var/versions/object`
但它经常失败,我需要一次又一次地手动授予权限。
现在是否有解决此问题的实用方法?
注意:我目前正在使用 Amazon Linux AMI。但是以后可以改成redhat或者ubuntu,所以最好有通用的linux解决方案。
【问题讨论】:
-
"通过 apache 用户运行 cron,出于安全原因,这是非常不可行的。" - 我很好奇,你认为这是为什么?
-
@chluehr,我们之前已经在一个繁忙的站点上看到了通过 apache cron 进行系统破解的实际示例。这足以让系统管理员禁用 apache cron。
-
好吧,我明白了,当然——尽管在我看来,这归结为保护要通过 cron 脚本运行的 php 脚本。这样做没有固有的/不可避免的危险。您的里程可能会有所不同:-)
-
@chluehr 实际上运行 cron 作为 apache 本身存在巨大的安全漏洞,因为黑客可以很容易地将他的脚本添加到 apache 用户 cron 中,这在当时只有 web 用户可用。保护 php 脚本不会阻止这一点。只有其他方法可以防止这种情况更新服务器以在服务器安装的软件包(包括 apache/php/mysql)中保留任何新问题
-
所以问题是漏洞利用,而不是 cron。禁用 cron 只是减轻了使用/效果。我明白了。
标签: php apache cron user-permissions pimcore