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 上的所有文件都显示所有者为“root”,但不显示用户 ex 。 “新”,因为它应该是。因此用户无法编辑/重命名/删除这些文件。
是否可以无论如何解决此问题(我拥有服务器),该文件将使用 'USERNAME' OWNERSHIP 提取?
I have a php script:
$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";
}
But when I execute this script, via http://www.mywebsite.com/extract.php
All the files on FTP are show with OWNER 'root', but not the user ex . 'neo' as it should be. So the user cant edit/rename/delete these files.
Is it possible to fix this anyhow (I own the server), that files will be extracted with 'USERNAME' OWNERSHIP ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
ozzwanted,由于某种原因,您的 Web 服务器(apache)以 root 身份运行,因此它生成的任何文件都将作为 root 生成。永远不应该出现这种情况。 apache 通常以“www-data”或“httpd”或“nobody”或“god”运行,具体取决于 Linux 发行版。
我建议您从系统管理员的角度来调查这个问题,并在您最终被利用之前让某人为您解决这个问题。 (假设这是一个实时服务器)
您可以使用 www.php.net/chown 函数,也可以在命令行上运行“chown”命令,或者使用 system() 或 exec() 函数等 PHP 函数来执行此操作。
祝你好运。
ozzwanted, for some reason your web server (apache) is running as root so any file it makes will be made as root. This should never be the case. apache usually runs as 'www-data' or 'httpd', or 'nobody' or 'god' depending on the linux distro.
I suggest you look into this from a sysadmin point of view and have someone sort it out for you before you end up getting exploited. (assuming this is a live server)
You can use www.php.net/chown function or your can run a 'chown' command on the command line or do it from PHP with something like system() or exec() functions.
Good luck.
它以运行网络服务器的用户身份提取(注意:您不应该以 root 身份运行它)。尝试使用 chown。
It extract as the user running the webserver (note: you should not be running it as root). Try using chown.