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 客户端无法执行或更改权限的主要内容,如果未能解决你的问题,请参考以下文章

Linux系统之Apache虚拟主机的三种实现方式

使用 Apache 服务部署静态网站

如何根据 mod_userdir 的用户拥有单独的 Apache2 日志文件?

Apache服务的安装以及服务文件参数内容的配置 @1

Apache Kafka 删除 Apache ZooKeeper 的依赖

如何从我的本地地址中删除此Apache页面?