Apache(服务器的操作系统)拥有应该删除的文件夹。 FTP 客户端无法执行或更改权限
Posted
技术标签:
【中文标题】Apache(服务器的操作系统)拥有应该删除的文件夹。 FTP 客户端无法执行或更改权限【英文标题】:Apache (server's OS) owns folder that should be deleted. FTP client cannot do or change permissions 【发布时间】:2013-09-02 11:11:37 【问题描述】:我在远程服务器上快速安装了一个 CMS(为朋友)。然后我重新考虑了它以及何时再考虑一个(实际上是***中推荐的一个)。 CMS 是 MODX,我按照建议卸载它:只需删除安装它的子目录即可。
今天,我注意到并非所有内容都已卸载:仍有大约 30kb 未删除。经检查,已注意到所有者/组为48/48;我的猜测(经过一些研究)是 Apache 设置了不可写文件夹权限,因为它们是在运行(php)安装脚本期间创建的。
因此,作为 FTP 用户(我在共享服务器中没有 root 访问权限),我无法删除它。但是如果那是由 Apache(因此是所有者)创建的,那么 Apache 本身(即 php 脚本)是否可能将权限更改为 0777,以便我可以删除这个无法使用的残骸?
你们中有人知道能够更改权限的 PHP 服务器文件管理器吗?一些小东西,因为它是暂时的。或者,如果我用 chmod("somefolder", 0777); 编写一个简短的 php 脚本;我可以通过 FTP 删除文件夹和里面的文件吗?
感谢您的 cmets,我已尝试编写一个简短的 php 脚本,但无法检查结果(除了它没有更改文件夹的权限)。
【问题讨论】:
【参考方案1】:您可以使用此脚本删除文件夹:
function rrmdir($dir)
if (is_dir($dir))
$objects = scandir($dir);
foreach ($objects as $object)
if ($object != "." && $object != "..")
if (filetype($dir."/".$object) == "dir") rrmdir($dir."/".$object); else unlink($dir."/".$object);
reset($objects);
rmdir($dir);
rrmdir("theFolder");
来源:How do I recursively delete a directory and its entire contents (files + sub dirs) in PHP?
将脚本放在与要删除的脚本相同的目录中。然后用您的网络浏览器调用它。
【讨论】:
非常感谢您的快速回复:此代码有效并解决了问题。这也回答了我的问题 - 因为安装 php 脚本创建具有特殊权限的文件夹,所以这个 php 脚本由同一个用户 Apache 执行,因此它可以删除(和/或我想,如果需要,可以删除 chmod )。以上是关于Apache(服务器的操作系统)拥有应该删除的文件夹。 FTP 客户端无法执行或更改权限的主要内容,如果未能解决你的问题,请参考以下文章
如何根据 mod_userdir 的用户拥有单独的 Apache2 日志文件?