2021年6月10日12:44:56
一般网站的跑的用户比如www都是设置成 /sbin/nologin,只提供ftp账号权限给www用户使用
cat /etc/passwd
可以看到权限,但是执行 crontab是需要bash权限的
但是你使用root 账号 crontab -e 跑的时候,比如代码里有生产文件的时候就是root:root导致权限不对,其实解决办法也很简单
使用sudo -u www 执行命令 比如
* * * * * sudo -u www /usr/local/php8/bin/php /data/wwwroot/mc/artisan schedule:run >> /data/root.log
查看日志
tail -f /data/root.log
你会发现 root.log 还是root:root
但是你发现你执行的计划任务,比如创建新的日志文件会变成 www:www