在UBUNTU 14上授予PHP写权限,文件内容无效

在UBUNTU 14上授予PHP写权限,文件内容无效,php,ubuntu,permissions,crontab,chmod,Php,Ubuntu,Permissions,Crontab,Chmod,我必须创建一个通过crontab运行的脚本。我在虚拟机上安装了一个新的Ubuntu,并开始测试 因此,当我在终端(sudo PHP filename.PHP)中运行脚本时,我意识到PHP没有在/var/www/html/文件夹中写入文件(包含文件内容) 如果我从命令中删除sudo,它会说权限被拒绝。我还尝试在../html/中创建一个不同的文件夹,还尝试了chmod 777。似乎什么都不管用。我几年前就见过这个问题,但我找不到任何解决办法 你们知道发生了什么吗?检查php可执行文件,看看setu

我必须创建一个通过crontab运行的脚本。我在虚拟机上安装了一个新的Ubuntu,并开始测试

因此,当我在终端(sudo PHP filename.PHP)中运行脚本时,我意识到PHP没有在/var/www/html/文件夹中写入文件(包含文件内容)

如果我从命令中删除sudo,它会说权限被拒绝。我还尝试在../html/中创建一个不同的文件夹,还尝试了chmod 777。似乎什么都不管用。我几年前就见过这个问题,但我找不到任何解决办法


你们知道发生了什么吗?

检查php可执行文件,看看setuid权限是否导致php放弃您使用sudo授予它的超级用户权限

我知道您不是通过web服务器来运行它,但是为了其他这样做的人的利益,我发现用提升的权限运行PHP太可怕了。如果我真的需要做一些危险的事情,我会将其隔离为尽可能少的代码,并使用suid root将其编码为perl脚本。(不,在共享主机上不能这样做。)然后我从PHP跳转到perl。在这种情况下,perl会自动在污染模式下运行,迫使您在继续之前清除所有输入。(这项技术大约起源于2001年,现在可能有更好的方法。)


…Tom Robinson

我将用它来测试脚本。这不是一个生产环境。我试试看。我正在安装所有的东西