웹마스터 팁

웹 계정에서 지워지지 않는 폴더 및 파일 삭제하는 방법
(웹에서 생성된 노바디, apache 권한 폴더 및 파일 삭제하는 방법)

웹에서 생성된 노바디 파일 및 폴더 삭제하는방법

기본적으로 웹 서버는 nobody 권한으로 동작이 되게 됩니다.

FTP로 계정에 접속하여 전송한 파일이 아니라 웹상에서 사용자들이 파일을 업로드한 경우나 웹상에서 생성된 파일이나 폴더의 경우 삭제가 되지 않아 난감할 때가 있습니다.

웹 서버의 동작 권한은 nobody이고 웹상에서 생성된 파일이므로, 해당 파일이 nobody 소유권으로 시스템에 생성되게 됩니다.

이렇게 생성된 파일이나 폴더가 삭제되지 않을 경우 아래와 같은 방법으로 웹상에서 실행시키면 지워지지 않는 파일이나 폴더를 삭제할 수 있게 됩니다.

1. 메모장을 열어 아래의 소스를 복사하여 붙여넣기 하신 후

 주의 : 아래 `는 키보드 상의 왼쪽 위 물결(~)키와 함께 있는 기호입니다.

<?

// 폴더 또는 파일 삭제시

$cmd = `rm -rf 노바디로 된 폴더명`;

echo "$cmd";

echo "삭제되었습니다.";

?>

* "노바디로 된 폴더명"을 삭제하고자 하는 폴더명으로 바꿔 주세요.

2. 파일 -> 다른 이름으로 저장 -> 아래 탭에서 파일 형식을 "모든 파일"로  선택 후 -> "원하는 파일명.php" 로 저장 (ex: del.php)

3. FTP를 통해 계정에 '원하는 파일명.php'를 업로드한 후 웹상에서 '원하는 파일명.php'를 불러내면 됩니다.

 ex: 만약 XXX 폴더/YYY 폴더 안에 삭제하고자 하는 zzz 파일이 있을 경우

XXX  폴더 안에 del.php를 업로드한 다음 (`rm -rf YYY`)

브라우저에서 http://도메인 주소/XXX/del.php 를 입력한 후 Enter 하면 됩니다.

4. del.php를 실행하면 YYY 폴더 안의 파일은 삭제되고 nobody 권한의 YYY 폴더는 그대로 남게 됩니다. (YYY 폴더 안의 파일들만 삭제됨)

이후 FTP로 계정에 접속한 다음 해당 폴더의 권한 설정을 777로 변경한 후 해당 YYY 폴더를 삭제하시면 됩니다. (아래와 같은 방법으로 하지 않고 FTP 프로그램에서 직접 권한 설정을 777로 변경하셔도 됩니다. - 어떤 경우에는 FTP 프로그램으로도 권한 변경이 되지 않을 경우도 있습니다.)

ex)

<?

// 퍼미션 변경시

$cmd = `chmod -R 777 노바디로 된 폴더명`;

echo "$cmd";

echo "퍼미션이 변경되었습니다.";

?>

5. 위의 에에서 XXX 폴더를 삭제하고자 할 경우에는 위 del.php에 삭제하고자 하는 폴더명 XXX를 입력(`rm -rf XXX`)한 후 del.php를 FTP로 웹상에 업로드한 다음 http://도메인 주소/del.php 를 실행하면 XXX 폴더 및 그 하위 YYY 폴더 안의 파일까지 모두 삭제가 됩니다. 만약 폴더가 삭제되지 않을 경우에는 삭제하고자 하는 XXX 폴더의 권한 설정을 777로 변경한 후 del.php를 실행시키면 됩니다.