회원가입

로그인

아이디
비밀번호
ID/PW 찾기
아직 회원이 아니신가요? 회원가입 하기

웹호스팅시 퍼미션 문제로 파일이 삭제되지 않을 때...

Profile
:맥노턴

뉴21이나 기타 웹호스팅 서비스를 받는 경우...

telnet 으로 접속하여 불필요한 디렉토리를 삭제하려는데, Permission deny 되어 삭제되지 않는 경우가 있다.

# ls -al

-rw-r--r--    1 nobody   nobody    4833825 May 16  2002 Dr.stein.mp3

이런식으로 내 계정(ex. johndou)이 아닌 nobody가 파일의 사용 권한을 가지고 있는 경우인데...

nobody 나 apache 같은 계정은 웹데몬이 사용하는데 엄연히 다른 유저이므로 r-- 로 되어 있을 때에는 nobody 이외에는 건드릴 수 없다.

rwx 로 권한을 풀어주어야만 내가 지우든 고치든 할 수 있다.

그렇다고 커맨드라인에

# chmod 777 *

처럼 해도 내 소유가 아니라 nobody의 소유이기 때문에 퍼미션을 내 맘대로 바꿀 수도 없다.

이럴 때, 대부분 관리자에게 전자우편을 보내어 삭제해 달라고 요청한다. (하지만, 귀찮다)

이럴 땐, 간단히 1회용 PHP 스크립트를 그 폴더에 만들어서 문제를 해결하고... 사용이 끝난 뒤에는 지워버리자.

# vi pm777.php
-------------------------

<?

shell_exec('chmod 777 *');

?>

:qw

PHP의 shell_exec()함수를 이용해 퍼미션을 -rwxrwxrwx 로 바꾸도록 명령(chmod 777 *)작성하였다.

물론, 특정 파일의 퍼미션만(chmod 777 filename)을 변경할 수도 있고, 하위 디렉토리까지(chmod -R 777 *) 다 바꿔버릴 수도 있으나, 귀찮아서 다 바꿔버렸다...

이 파일을 그냥 실행하는게 아니라... 인터넷 익스플로러를 이용해 실행한다.

http://test.com/bbs/data/test/pm777.php

처럼 주소창의 위 파일의 위치를 입력해 실행시킨다. 

# ls -al

-rwxrwxrwx    1 nobody   nobody    4833825 May 16  2002 Dr.stein.mp3

와 같이 퍼미션이 변경되어 있을 것이다. 

# rm -rf Dr.stein.mp3

하면, 깔끔하게 지워지게 되는 것은 물론이고...

원리인즉슨, PHP가 실행될때는 웹데몬(아파치 등) 계정 권한으로 실행된다. 즉, nobody 의 권한으로 위의 스크립트가 실행되기 때문에, nobody 소유의 파일들의 권한을 바꿔줄 수 있는 것이다.

알면 좀 덜 귀찮다...

모르면, 업체에게 삭제 요청을 해야겠지만... ^^

 

:맥노턴.macnorton.

 

Profile
:맥노턴
레벨 30
569404/686490
81%
McNorton & Education Lab.
Director
댓글
1
댓글 쓰기
권한이 없습니다.

로그인

아이디
비밀번호
ID/PW 찾기
아직 회원이 아니신가요? 회원가입 하기