我必须创建一个运行crontab的脚本。我在虚拟机中设置了一个新的Ubuntu并开始测试
所以当我在终端中运行脚本(sudo php filename.php)时,我意识到PHP没有在/ var / www / html /文件夹中编写文件(带有file_put_contents)
如果我从命令中删除sudo,则表示权限被拒绝。我还尝试在../html/中创建一个不同的文件夹,并尝试了chmod 777.似乎没有任何工作。我几年前见过这个问题,但我找不到任何解决方案
你们中有谁知道发生了什么事吗?
答案 0 :(得分:0)
检查php可执行文件,看看setuid权限是否导致PHP删除了你用sudo提供的超级用户权限。
我知道你不是通过网络服务器运行它,但为了其他人的利益,我觉得用高级权限运行PHP太可怕了。如果我真的需要做一些危险的事情,我会将它隔离到尽可能少的代码,并将其编码为带有suid root的perl脚本。 (不,你不能在共享主机上这样做。)然后我从PHP弹出perl。在这种情况下,perl会自动以污染模式运行,强制您在继续之前清理所有输入。 (这项技术大约从2001年开始,现在可能有更好的方法。)
......汤姆罗宾逊