Fab*_*cci 3 php bash logging centos
我发现我的 crontab 脚本无法按预期工作,因为它们无法写入 /var/log。我尝试执行命令:
sudo /usr/bin/php /var/www/html/iPhone/inarrivo/php/rome/process.php >> /var/log/romeLoading.log 2>&1
手工得到:
-bash: /var/log/romeLoading.log: 权限被拒绝
/var/log 权限为:
drwxr-xr-x。13 根根 4096 15 前 16.20 。
如果我反过来执行:
sudo touch /var/log/loadRome.log
我没有收到任何错误。
可能是什么问题?
请注意 Apache 没有受到威胁:我从根 crontab 和使用 sudo 从 shell 调用这些脚本作为测试。
最佳猜测:运行 shell 的用户没有对 的写访问权限/var/log/romeLoading.log,并且 stdout 重定向 ( >>) 由 shell 用户而不是 sudo 用户重定向,因此在 >> 上的访问被拒绝,但在 上则不然sudo touch。也许尝试一下
sudo sh -c '/usr/bin/php /var/www/html/iPhone/inarrivo/php/rome/process.php >> /var/log/romeLoading.log 2>&1'
应该以 root 身份运行 sh,并让 root-sh 使用 root 权限进行重定向。虽然未经测试。
下次您想要发布调试权限时,发布输出namei -l path/to/file,它会在调试权限问题时提供比说明单个文件本身更多的信息,因为问题可能比文件本身更高,例如其所在的文件夹,或者它所在的文件夹,等等〜和 namei 递归地为您提供所有这些文件夹的详细权限信息。