2014-08-28 51 views
0

我有一个文件与cronjob一起运行并创建一些文件和文件夹,但是当在网站模式下进入该文件夹时,我无法创建文件或任何文件夹。
我认为由cronjob owner创建的文件夹是root,但是当想在网站模式下访问它时,我们是在apache所有者中,并且无法操作它。
当使用0777权限创建文件夹时,它工作正常。没有将文件夹权限从0775更改为0777,任何人都知道这个问题的解决方案? 谢谢。通过cronjob和maniuplate在网站端创建文件夹的权限

回答

0

这是可以解决的安全风险Apache所有者或将您创建文件的文件夹设置为将组所有权传播到所有创建的文件/文件夹。

要运行一个cronjob作为另一个用户:

crontab -eu apache-user 

这将运行作业,运行Apache的所以就没有必要改变权限相同的用户。如果文件不能在网站前面写入,这并不理想。

很明显,您需要将“apache-user”更改为运行Apache的用户。例如:Ubuntu上的www-data,CentOS上的apache。

要设置的文件夹继承组所有权,以便在文件夹中创建的所有文件将是由组访问:

chmod g+s folder-you-are-writing-to/ 

,并确保Apache组织被设置为组:

chgrp apache-user folder-you-are-writing-to/ 
1

如果你的PHP脚本创建文件夹通过root身份运行,那么你就可以执行exec()chown命令文件所有者更改为阿帕奇

chown -R username:group /directory 
2

你可以改变你的的cron使该文件夹的所有者工作,无论你的网络用户是什么。

chown -R apache:apache /path/to/folder 

编辑: 如果你要做到这一点,总有具有Web用户能够通过运行中的cronjob作为创建文件等