我需要以非 root 用户身份从 cron 运行命令(仅一个命令)。
尝试了两个版本,但都失败了;
计划任务:
* * * * * php script.php
脚本.php:
exec("whoami"); // returns 'root'
// version 1
exec("runuser -u www-data -- ls"); // error -> sh: 1: runuser: not found
// version 2
exec("su www-data -c 'ls'"); // error -> This account is currently not available.
答案1
不要使用root
crontab。对www-data
用户使用 crontab:
crontab -e -u www-data
或者使用系统 crontab/etc/cron.d/
并指定用户www-data
。
* * * * * www-data php script.php