cron作业和文件夹的权限 - 权限被拒绝(Cron job and folders permiss

2019-06-24 10:57发布

我有用于临时存储由PHP Web应用程序生成的用户文件的根目录以上的文件夹。 该文件可能,例如,是PDF的是将要附加到电子邮件。

文件夹的权限被设定为rwxr-XR-X(0755)。 当从Web应用程序执行过程中,该文件被写入到这个文件夹没有任何问题。

现在我还设置了调用PHP脚本来执行完全相同的过程如上cron作业。 但是,PDF无法保存到上面的文件夹,由于失败的权限- cron作业报告回permission denied的错误。

我已经试过了文件夹的权限设置为0775,仍然可以得到一个权限被拒绝。 然而,当权限是0777,那么cron作业,然后正常工作。

这似乎很奇怪,我 - 为什么cron的获得许可在0755否认,但它通过web应用程序正常工作?

Answer 1:

可能的答案是,cron作业用户下执行 - 而目录是Apache(或WWW的数据或没人或任何用户您的Web服务器上运行)所拥有。

为了得到它的工作,你可以设置cron作业作为Web服务器用户运行。 事情是这样的:

su -l www-data -c 'crontab -e'

或者,您可以更改权限到775(读 - 写 - 执行的所有者和组,和其他用户的读,执行),并设置该文件夹的所有权组在运行的cron作业的用户。

但是,你必须确保,如果你删除的东西或降成是Apache创建的文件夹,你仍然可以遇到问题(阿帕奇将创建它本身拥有的文件,并且用户无法删除它,然后,不管的目录权限。

您还可以看看像suphp或什么是最新的一些东西 - 在Web服务器进程您的用户名下运行,这取决于您的系统架构。



Answer 2:

权限给予用户组,每一个人。 这就是3个数字表示。

你的PHP脚本运行作为一个不同的用户群比cron作业,让他们观察不同的权限。

检查chownchgrp ,或尝试运行使用相同的用户cron作业。



Answer 3:

这要看用户定义了的cronjob。

如果你的根(不推荐)它应该工作。 如果你的网络的用户(在Ubuntu如www数据),它应该正常工作。

sudo su - www-data
crontab -e


Answer 4:

如果您正在使用的cPanel运行PHP,你可以尝试这样的事:“PHP /home/algo/public_html/testcron.php” ......这样写:PHP(脚本的鲁特)/yourscritpt.php”



文章来源: Cron job and folders permissions - permission denied