如果我跑,su www-data -c /usr/bin/php /ho....
我会
此帐户目前不可用。所以我猜我的 cronjob 永远不会起作用。
我怎样才能让它正常工作而不破坏安全性?
答案1
您的问题的核心可能是“www-data”有一个 /usr/sbin/nologin 的 shell - 并且在传递运行之前作为登录的一部分执行。
尝试如下操作以使该命令以 root 身份运行:
su www-data -s /bin/bash -c /usr/bin/php /ho....
当然,crontab 可能没有这个限制。我在我的 ubuntu 16.04 机器上用一个等效用户做了一个快速测试,只需将 cron 条目添加到 /etc/crontab 即可,无需调用 su 或关心 shell。该行可能看起来像
* * * * * www-data /usr/bin/php /ho....