crontab执行身份的小坑

徘徊边缘 提交于 2019-12-06 09:11:49

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

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

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

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

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

怀疑为什么会有 devuser 的日志文件产生:

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

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

由于我们使用了 devuser 来配置的 crontab -e,所以执行身份肯定是 devuser。 最后我们将 schedule:run 命令写入了 /etc/crontab 里面,指明用 www-data 执行。

天下太平了。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!