如何通过php为特定用户安装crontab


How to install crontab for specific user via php

我目前正在用PHP(5.3)编程一个web接口,用于处理计时和安装cronjobs作为管理cronjobs的简单接口。web服务器与cron服务位于同一台服务器上。我已经设法将crontab保存到一个文件中,以便将其交换为系统上的特定用户。现在我有一个问题,php运行在一个不同的用户,而不是应该安装的crontab。此外,我需要能够通过输入字段在我的web界面中定义非用户。

我试图通过PHP crontab -u MyCronuser MyCrontab执行shell命令,但PHP用户没有使用-u参数的特权(我不允许改变这一点)所以下一个想法是做一些像su cronUser,但没有-p参数,所以我不能处理登录的密码。我试图像su cronuser && echo 'MyPassword'链命令,但它没有工作,我没有找到任何解决方案,通过谷歌登录到shell与不同的用户与PHP。有办法这样做吗?使用sudo作为没有密码的root用户执行也不是一个选项,因为我不允许激活这些权限。

有我可能错过的解决方案吗?也许换个方法来解决我的问题?

这个答案属于不同的方法类别,可能对您没有帮助。我已经构建了几个以以下方式运行的cron系统。

1)设置一个cron每分钟运行一次并调用一个php文件(例如cron.php)2) cron.php将从数据库表中提取数据,该表指示需要运行哪些脚本以及以什么间隔运行3) cron执行适当的脚本-处理错误等。

我不确定用户需要什么,但是将这些数据添加到数据库表中应该是微不足道的。