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 執行。軟件

天下太平了。配置

相關文章
相關標籤/搜索