FTP工具软件会提示Permission Denied(没有权限),或者 550删除目录操作失败。今天小残在操作FTP的时候就出现了这种问题。
出现的原因一般都是这些目录或文件是PHP程序以管理员用户写入的,而一般虚拟主机的用户名下的用户又没有管理员用户组的权限,因此无法删除。
大家在使用Linux的虚拟主机时候有没有出现过通过FTP无法删除网站路径中的一些文件夹和文件
我们可以把下面这个PHP代码放到对应的虚拟主机的空间上运行,按提示输入文件夹或文件名即可。(注意这里最好使用相对路径。)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
|
<?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上传到虚拟主机根目录,然后访问该文件。
然后将要删除的文件或者文件夹的路径填写上去
比如删除min文件夹那么如下设置:
然后刷新下虚拟主机即可发现文件已被删除。