ZipArchive php类将文件提取为root.为什么?
作者:互联网
我有一个PHP脚本:
$extract_dir = "./";
$extract_file = "extractME.zip";
$zip = new ZipArchive;
$res = $zip->open($extract_file);
if ($res === TRUE) {
$zip->extractTo($extract_dir);
$zip->close();
echo "ok";
} else {
echo "failed";
}
但是当我通过http://www.mywebsite.com/extract.php执行此脚本时
FTP上的所有文件都以OWNER’root’显示,但不是ex用户.应该是“ neo”.因此,用户无法编辑/重命名/删除这些文件.
是否有可能解决此问题(我是服务器的所有者),使用“ USERNAME” OWNERSHIP提取文件?
解决方法:
出于某种原因,您的Web服务器(Apache)以root身份运行,因此它制作的任何文件都将以root身份运行.永远都不会这样. apache通常以“ www-data”或“ httpd”或“ nobody”或“ god”运行,具体取决于Linux发行版.
我建议您从系统管理员的角度进行调查,并在最终被利用之前请别人帮您解决. (假设这是一个实时服务器)
您可以使用www.php.net/chown函数,也可以在命令行上运行“ chown”命令,或者使用诸如system()或exec()函数之类的方法从PHP中执行该命令.
祝好运.
标签:unzip,ziparchive,php 来源: https://codeday.me/bug/20191209/2097516.html