linux服务器下完美解决无法删除虚拟主机文件或文件夹

 更新时间:2016年08月24日 17:31:27   投稿:mdxy-dxy  
大家在使用Linux的虚拟主机时候有没有出现过通过FTP无法删除网站路径中的一些文件夹和文件,FTP工具软件会提示Permission Denied(没有权限),或者 550删除目录操作失败

FTP工具软件会提示Permission Denied(没有权限),或者 550删除目录操作失败。今天小残在操作FTP的时候就出现了这种问题。

出现的原因一般都是这些目录或文件是PHP程序以管理员用户写入的,而一般虚拟主机的用户名下的用户又没有管理员用户组的权限,因此无法删除。
大家在使用Linux的虚拟主机时候有没有出现过通过FTP无法删除网站路径中的一些文件夹和文件

我们可以把下面这个PHP代码放到对应的虚拟主机的空间上运行,按提示输入文件夹或文件名即可。(注意这里最好使用相对路径。)

<?php
/*
 ####警告####
 本软件为空间维护工具,使用完毕之后请立即删除本文件
 www.exehack.net
*/
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>空间文件夹/文件删除工具</title>
<style>
body {font-family:"宋体"; font-size:12px;}
imput { border:1px #ccc solid;}
b { color:#FF0000;}
</style>
</head>
<body>
<form action="?action=dirdel" method="post">
删除文件夹,<b>请确定填写无误后再进行删除操作!</b><br>
请输入文件夹路径,多个文件夹请使用";"隔开
<input type="text" name="all_folder" size="50">
<input type="submit" value="删除">
</form>
<br>
<form action="?action=filedel" method="post">
删除文件,<b>请确定填写无误后再进行删除操作!</b><br>
请输入完整的文件路径,多个文件请使用";"隔开
<input type="text" name="all_files" size="50">
<input type="submit" value="删除">
</form>
<br>
<?php
$action = $_GET['action'];
//删除目录操作
if($action=='dirdel') {
 $all_folder = $_POST['all_folder'];
 if(!empty($all_folder)) {
 //根据分号识别多个文件夹
 $folders = explode(';',$all_folder);
 if(is_array($folders)) {
 foreach($folders as $folder) {
 deldir($folder);
 echo $folder . '删除成功<Br>';
 }
 }
 }
}
if($action=='filedel') {
 $all_files = $_POST['all_files'];
 if(!empty($all_files)) {
 //根据分号识别多个文件
 $files = explode(';',$all_files);
 if(is_array($files)) {
 foreach($files as $file) {
 if(is_file($file)) {
 if(unlink($file)) {
 echo $file . '删除成功<Br>';
 } else {
 echo $file . '无法删除,请检查权限<Br>';
 }
 } else {
 echo $file . '不存在<br>';
 }
 }
 }
 }
}
//删除目录及所包含文件函数
function deldir($dir) {
 //打开文件目录
 $dh = opendir($dir);
 //循环读取文件
 while ($file = readdir($dh)) {
 if($file != '.' && $file != '..') {
 $fullpath = $dir . '/' . $file;
 //判断是否为目录
 if(!is_dir($fullpath)) {
 //如果不是,删除该文件
 if(!unlink($fullpath)) {
 echo $fullpath . '小残提示:无法删除,可能是没有权限!<br>';
 }
 } else {
 //如果是目录,递归本身删除下级目录
 deldir($fullpath);
 }
 }
 }
 //关闭目录
 closedir($dh);
 //删除目录
 if(rmdir($dir)) {
 return true;
 } else {
 return false;
 }
}
?>
</body>
</html>

为了防止出错大家也可以直接下载文件然后上传到虚拟主机上。

下载地址:本地下载

下载好以后然后将 exehack.php上传到虚拟主机根目录,然后访问该文件。

即http://www.exehack.net/exehack.php

然后将要删除的文件或者文件夹的路径填写上去

比如删除min文件夹那么如下设置:

然后刷新下虚拟主机即可发现文件已被删除。

相关文章

  • linux CentOS 系统php和mysql命令加入到环境变量中

    linux CentOS 系统php和mysql命令加入到环境变量中

    这篇文章主要介绍了linux CentOS 系统php和mysql命令加入到环境变量中的相关资料,需要的朋友可以参考下
    2016-12-12
  • 在linux系统下安装两个nginx的简单方法

    在linux系统下安装两个nginx的简单方法

    下面小编就为大家带来一篇在linux系统下安装两个nginx的简单方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • linux下挂载VHD等虚拟磁盘文件的方法

    linux下挂载VHD等虚拟磁盘文件的方法

    本篇文章主要介绍了linux下挂载VHD等虚拟磁盘文件的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04
  • 函数sync、fsync与fdatasync的总结整理(必看篇)

    函数sync、fsync与fdatasync的总结整理(必看篇)

    下面小编就为大家带来一篇函数sync、fsync与fdatasync的总结整理(必看篇)。小编觉得挺不错的。现在就分享给大家。也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • CentOS中环境变量与配置文件的深入讲解

    CentOS中环境变量与配置文件的深入讲解

    这篇文章主要给大家介绍了关于CentOS中环境变量与配置文件的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用CentOS具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-10-10
  • Linux 和Windows 安装Git 步骤详细介绍

    Linux 和Windows 安装Git 步骤详细介绍

    这篇文章主要介绍了Linux 和Windows 安装Git 步骤详细介绍的相关资料,需要的朋友可以参考下
    2017-01-01
  • CentOS下MySQL的彻底卸载的几种方法

    CentOS下MySQL的彻底卸载的几种方法

    本篇文章主要介绍了CentOS下MySQL的彻底卸载的几种方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • 使用 chkconfig 和 systemctl 命令启用或禁用 Linux 服务的方法

    使用 chkconfig 和 systemctl 命令启用或禁用 Linux 服务的方法

    在 Linux 中,无论何时当你安装任何带有服务和守护进程的包,系统默认会把这些服务的初始化及 systemd 脚本添加进去,不过此时它们并没有被启用。下面小编给大家带来了使用 chkconfig 和 systemctl 命令启用或禁用 Linux 服务的方法,一起看看吧
    2018-11-11
  • 详解linux 看门狗驱动编写

    详解linux 看门狗驱动编写

    本篇文章主要介绍了详解linux 看门狗驱动编写,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04
  • Linux命令每天必学(5)之rm命令

    Linux命令每天必学(5)之rm命令

    rm是常用的命令,该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是删除了链接,原有文件均保持不变
    2016-01-01

最新评论