상세 컨텐츠

본문 제목

웹에서 업로드된 nobody 파일 삭제하기....

IT공부방/HTML5, CSS

by 동해둘리 2016. 7. 29. 19:32

본문

반응형

자료출처 : http://meju1208.blog.me/220396333278



때로는 우리가 XE를 사용하거나, 그누보드, 워드프레스등을 사용하다보면 nobody 파일 이나 디렉터리를 볼수있습니다.

이 nobody 는 슈퍼유져로도 잘 지워지지 않는데요 이럴땐 웹권한을 가진 데몬이 파일을 삭제하게 해주면 간단합니다.


우리가 사용하는 웹서버에 다음 스크립트를 작성해줍니다.


<?php
function rmdir_recurse($path)
{
    $path= rtrim($path, '/').'/';
    $handle = opendir($path);
    for (;false !== ($file = readdir($handle));)
        if($file != "." and $file != ".." )
        {
            $fullpath= $path.$file;
            if( is_dir($fullpath) )
            {
                rmdir_recurse($fullpath);
                rmdir($fullpath);
            }
            else
              unlink($fullpath);
        }
    closedir($handle);
}
rmdir_recurse("xe"); //deleteme 디렉토리를 삭제
// rmdir_recurese($_GET['dir']); 
// 위방식으로 사용할경우 브라우저에 http://home.co.kr/delete.php?dir=삭제할디렉토리
// 로 사용하시면 됩니다.
?>

해당 파일을 웹서버의 삭제할 디렉터리가 보이는 디렉터리에 작성합니다. 예를 직어
sh# pwd;ll
/homr/user/public_html/xe/layout
dr-x-r-x-r-- nobody deleteme
-r-x-r-x-r-- nobody please_delete.html

에서 두 파일 모두 삭제하고 싶다면
현재 저 파일들이 보이는 디렉터리에서

sh# vi delete.php
vi로 delete.php 를 새로 생성하여 위의 소스를 붙여넣습니다. 그후, 브라우저 주소창에
하신뒤, ssh 로 접속해 확인해보시면, 깔끔하게 지워져 있는걸 확인할수 있습니다.
만약 파일이 디렉토리라면 하위폴더까지 모두 삭제되니 참고하시면 되겠습니다.





아래 방법이 더 쉬워보임... 하지만, 하나하나 삭제해야 되므로 불편하기도 함 ㅎ

참고 : http://blog.naver.com/ouksoo21/130046816498



php 파일을 하나 만들고 아래와 같이 소스를 넣은다음에 웹으로 실행시키면 

해당 파일이나 폴더는 깔끔하게 삭제가 됩니다.


<?php
unlink('해당 파일 경로');
?>

<?php
rmdir('해당 폴더 경로');  //폴더 삭제일경우에는 폴더내에 파일이 없어야 합니다.
?>



아래 방법이 최종적으로 사용한 방법임


참고 : http://free4u.wo.tc/1291


<?

function recusive_delete($directory) {

$dir = opendir($directory);

while ($d = readdir($dir)) {

if ($d == "." || $d == "..")

continue;

$xxx = "$directory/$d";

// 파일 그룹이 99 이면 nobody

$fgroup = filegroup($xxx);

if (is_dir($xxx)) {

recusive_delete($xxx);

if ($fgroup == 99) {

rmdir($xxx);

}

} else {

if ($fgroup == 99) {

unlink($xxx);

}

}

}

closedir($dir);

}

$directory = "tmp";

recusive_delete($directory);

?>

위 소스중에서  $directory 의 내용만 변경해 주신 후 브라우저에서 이 프로그램을 실행하시면 된다




반응형

관련글 더보기

댓글 영역