crontab执行身份的小坑

有个ubuntu服务器,跑着apache, PHP7, Laravel,supervisor。apache

apache和supervisor都是www-data用户。 平时管理员ssh登上去用的都是devuser用户。ubuntu

今天发现Laravel日志异常了,连着几天都是只有短短一行日志记录。 从文件大小就看出来不对劲服务器

新的日志都写不进去。chown 改为 www-data 后日志仍是写不进去,见了鬼了。ssh

后来尝试重启 apache, supervisor, PHP7 ,而后重命名掉今天的日志文件,发现新日志终于有了。是正常的 www-data 用户的文件。日志

怀疑为何会有 devuser 的日志文件产生:crontab

  1. 有人用 devuser 身份 SSH 登进来搞事情。
  2. 有什么软件是以 devuser 身份执行了。

咱们检查了 apache, supervisor, PHP配置文件, 都是 www-data。百思不得其解。 最后排查到定时任务,才想起来咱们使用了 crontab 来重复触发 artisan schedule:run 来执行定时任务。it

因为咱们使用了 devuser 来配置的 crontab -e,因此执行身份确定是 devuser。 最后咱们将 schedule:run 命令写入了 /etc/crontab 里面,指明用 www-data 执行。软件

天下太平了。配置

相关文章
相关标签/搜索