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

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文件夹那么如下设置:

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

(0)

相关推荐

  • linux服务器中的远程访问问题小结

    在php程序中运用fopen或者socket的时候,报一下错误: php_network_getaddresses: getaddrinfo failed: Temporary failure in name. 我的代码如下 $handle = fopen("http://www.baidu.com/", "r"); echo "handle:".$handle; 这表示是无法连接到服务器,而我http://www.baidu.com/是可以访问

  • 关于linux服务器下vsftpd的一些问题

    前段时间碰到一位牛B的人物,帮我修正了vsftpd基于PAM认证的问题.今天又碰到N个问题,比如Access denied. 和403错误,无法上传文件等等之类的错误.于是,只好请这个高人再次出马,帮忙再次修正.很感谢这位牛B人物.在利益大于一切的这个X蛋的社会,还能为了咱们这群小菜鸟去分析N个文件..这种精神实在是值得佩服. 针对我自己本身出现的问题,将高人与我的QQ聊天记录整理了一份,然后再加上实际的操作.终于让我大彻大悟.现在与大家狠狠的分享这位高人的成果. 用户上传文件访问出现403或者

  • linux vps服务器进程kswapd0与events/0消耗大量CPU的问题

    今天下午网站宕了两次机,发工单给阿里云,发现原因是服务器的CPU 100%了. 重启服务器后,使用 top 命令看看是哪些进程消耗那么大的 CPU 使用.盯了有好十几分钟,主要消耗 CPU 的进程有两个,一个是 mysql,另一个是 apache.下面的图可以看到,mysql 占用了很大部分的 CPU 使用.apache 单个进程虽然占得不多,但有不少个 apache 进程同时存在,也消耗了不少 CPU 的使用. 当然,这些不足以让服务器的 CPU 直接跑满挂掉,后来发现了两个大家伙: 当 my

  • web服务器程序运行出现乱码问题的解决方法

    使用php,定义php的默认语言. php.ini中: default_charset = "gb2312" 在网页中输出中文 JAVA在网络传输中使用的编码是"ISO-8859-1",故在输出时需要进行转化,如: String str="中文"; str=new String(str.getBytes("GB2312"),"8859_1"); 但如果在编译程序时,使用的编码是"GB2312&qu

  • thinkphp项目部署到Linux服务器上报错“模板不存在”如何解决

    最近一个项目部署到Linux服务器上去的时候,发现某些模板竟然会报错说"模板不存在:/Application/Admin/...." 检查了服务器上的文件,并没有缺少文件,再次上传文件到服务器,还是报错.莫名其妙,怀疑是代码问题. 仔细检查后,发现是模板的文件名问题: 用过TP的都知道:thinkphp会在$this->display()的时候,会自动获取方法名作为模板的文件名,比如一个getUserInfo方法对用着getuserinfo.html的模板文件. 对控制器里的方法

  • windows7服务器上weblogic启动失败异常解决方法

    环境: 操作系统:windows 7 weblogic:10.3.3 问题: 根据安装向导创建域后首次默认启动服务,可以启动成功. 通过命令行或开始菜单中的快捷方式,启动时出现如下异常: /Java/jre6/lib/ext/QTJava.zip was unexpected at this time. 解决方法: 更改环境变量,删除classpath中的:C:/Program Files (x86)/Java/jre6/lib/ext/QTJava.zip 重启服务器,问题解决

  • Web服务器日志统计分析完全解决方案

    文章相关软件: webalizer http://www.mrunix.net/webalizer/ cronolog http://www.cronolog.org/ Apache http://www.apache.org/ 一. 前言 随着Internet上Web服务的发展,几乎各个政府部门.公司.大专院校.科研院所等都在构建或正在建设自己的网站.而与此同时,在构建网站建设中各个单位都会遇到各种各样的问题,那么对web服务器的运行和访问情况进行详细和周全的分析对于了解网站运行情况,发现网站

  • 探讨如何减少Linux服务器TIME_WAIT过多的问题

    TIME_WAIT状态的意义: 客户端与服务器端建立TCP/IP连接后关闭SOCKET后,服务器端连接的端口状态为TIME_WAIT是不是所有执行主动关闭的socket都会进入TIME_WAIT状态呢?有没有什么情况使主动关闭的socket直接进入CLOSED状态呢?主动关闭的一方在发送最后一个 ack 后就会进入 TIME_WAIT 状态 停留2MSL(max segment lifetime)时间,这个是TCP/IP必不可少的,也就是"解决"不了的.也就是TCP/IP设计者本来是这

  • web服务器集群(多台web服务器)session同步、共享的3种解决方法

    在做了web集群后,你肯定会首先考虑session同步问题,因为通过负载均衡后,同一个IP访问同一个页面会被分配到不同的服务器上,如果session不同步的话,一个登录用户,一会是登录状态,一会又不是登录状态.所以本文就根据这种情况给出三种不同的方法来解决这个问题: 一.利用数据库同步session 在做多服务器session同步时我没有用这种方法,如果非要用这种方法的话,我想过二种方法: 1,用一个低端电脑建个数据库专门存放web服务器的session,或者,把这个专门的数据库建在文件服务器上

  • Linux Web服务器网站故障分析常用命令

    Linux Web服务器网站故障分析,具体内容如下 系统连接状态篇: 1.查看TCP连接状态 netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn netstat -n | awk '/^tcp/ {++S[$NF]};END {for(a in S) print a, S[a]}' 或 netstat -n | awk '/^tcp/ {++state[$NF]}; END {for(key in state) print key,"\t&q

随机推荐