웹마스터 팁
XE 설치 시 안전한 폴더권한 설정하기 (chown 사용)
2014.08.07 07:58
XE 설치시 보통 html 폴더에 777 혹은 707 등으로 권한을 다 줍니다.
아무래도 찜찜하다면 찜찜하죠.
그냥 넘어가면 쉽게 넘어가기도 하지만 보안에 조금이라도 민감하다면 아무래도 좀 찜찜함이 없잖아 있었을 것입니다.
하지만 서버의 chown 명령어를 이용할 수 있다면 이를 이용한 꼼수(?)를 써서 굳이 소유자가 아닌 다른 사용자(others)에게까지 모든 권한을 주지 않고서도 처리가 가능합니다.
이 명령어를 사용할 수 있는 권한이 있어야 하기에 일반 웹호스팅은 거의 불가능하고 적어도 가상호스팅이나 실제서버 정도는 되어야 할 것입니다. 혹은 PHP를 이용하여 폴더를 생성하는 꼼수도 있을 순 있겠지만 전 프로그래머가 아니라서 잘 모르기에... 아쉽게도 여기선 pass...
XE 경우에는 권한이 필요한 경우가, 웹서버(php)단에서 xe/files 폴더에 접근하여 읽고 쓸 경우에 필요합니다. 나머지는 굳이 권한 따로 주지 않더라도 기본적인 r(읽기) 권한 아래에서도 문제없이 돌아갈 수 있습니다.
files 폴더는 XE 코어 파일에는 따로 존재하지 않지만 설치과정을 거치면서 D/B정보 및 각종 설정과 캐시가 기록되는 파일을 모아놓는 폴더입니다. 이 폴더 하나에만 제대로 된 권한이 있어도 문제없이 돌아갈 수 있는 것이죠.
이를 chown 명령어를 이용해 꼼수 쓰는 방법입니다. 따로 권한을 주지 않아도 바로 웹서버가 해당 폴더에 접근할 수 있게끔 아얘 소유자를 명시적으로 바꾸어 주는 방법입니다. 모로가든 어쨌든 웹서버가 접근할 수 있게끔 해 주는 것이죠. 게다가 오히려 더 안전한 방법이니... 할 수만 있다면 이렇게 하는게 좋겠죠.
아래 방법은 CentOS 기준으로 작성되었으나 다른 운영체제에서도 소유자명만 다를 뿐 다른 부분은 동일할 것입니다.
[root@localhost files]# ll 합계 16 drwxr-xr-x. 6 apache apache 81 1월 2 2013 attach drwxr-xr-x. 22 apache apache 4096 7월 26 02:29 cache drwxr-xr-x. 2 apache apache 96 2월 26 2013 config drwxr-xr-x. 2 apache apache 51 1월 10 2014 env drwxr-xr-x. 12 apache apache 4096 1월 19 2014 faceOff drwxr-xr-x. 8 apache apache 4096 1월 1 2013 member_extra_info drwxr-xr-x. 2 apache apache 87 1월 9 2014 ruleset drwxr-xr-x. 2 apache apache 33 1월 10 2014 site_design drwxr-xr-x. 2 apache apache 35 1월 1 2013 theme drwxr-xr-x. 152 apache apache 4096 7월 26 02:29 thumbnails
777을 통해 설치한 폴더 내부를 보면 정작 내부 파일들은 777 권한 없이도 잘 돌아가며 소유자가 웹서버 (apache:apache (CentOS RPM 패키지 설치 기준)) 등으로 되어있는 것을 볼 수 있을 것입니다.
이에서 착안,
[root@localhost html]# mkdir files
설치 전 미리 XE가 설치된 코어루트(/, modules addons layouts 등의 폴더가 존재하는 위치) 폴더에 files 폴더도 같이 생성해 줍니다.
[root@localhost html]# chwon apache:apache files
그리고 소유자를 웹서버로 바꾸어 줍니다.
[root@localhost html]# ll 합계 6952136 -rw-r--r--. 1 501 users 1419 5월 9 00:12 CONTRIBUTING.md -rw-r--r--. 1 501 users 46 5월 9 00:12 COPYRIGHT -rw-r--r--. 1 501 users 25396 5월 9 00:12 LICENSE -rw-r--r--. 1 501 users 2376 5월 9 00:12 README.md drwxr-xr-x. 19 501 users 4096 2월 25 23:08 addons drwxr-xr-x. 3 501 users 45 1월 10 2014 admin drwxr-xr-x. 22 501 users 4096 8월 14 2012 classes drwxr-xr-x. 7 501 users 80 8월 14 2012 common drwxr-xr-x. 2 501 users 84 1월 9 2014 config drwxr-xr-x. 12 apache apache 4096 4월 29 18:11 files -rw-r--r--. 1 501 users 2287 5월 9 00:12 index.php drwxr-xr-x. 8 501 users 4096 1월 12 2014 layouts drwxr-xr-x. 6 501 users 4096 8월 14 2012 libs drwxr-xr-x. 5 501 users 69 8월 14 2012 m.layouts drwxr-xr-x. 35 501 users 4096 5월 9 00:16 modules drwxr-xr-x. 2 501 users 28 8월 14 2012 phpDoc drwxr-xr-x. 5 501 users 4096 1월 10 2014 tests drwxr-xr-x. 6 501 users 4096 8월 14 2012 themes drwxr-xr-x. 4 501 users 41 1월 10 2014 tools drwxr-xr-x. 8 501 users 4096 8월 14 2012 widgets drwxr-xr-x. 3 501 users 27 8월 14 2012 widgetstyles
그 다음 ls -l 한번 때려 주면 files 폴더가 동일한 정도의 권한에 소유자만 넘어간 것을 볼 수 있습니다.
이 이후에 XE를 설치하면 권한은 충분히 있기에 실제로 777 혹은 707 권한을 주지 않아도 소유자 권한은 충분히(7) 있기에 매끄럽게 넘어가는 것을 확인할 수 있습니다. 그리고 웹서버를 제외한 다른 계정에선 권한이 없게 되죠. 사실 이론적으론 아얘 다른 계정에서 조회 못하게 700 권한 주어도 큰 무리는 없을 것입니다.
이미 설치되어있는 서버에서도 위 방법 적용 후 chmod 로 권한 755 정도나 혹은 소유자만 남기고 다 버려주면 정상적으로 돌아갑니다.
CentOS 의 경우는 웹서버가 apache:apache 로 되어있으나 Ubuntu 서버에서는 www-data 등으로 되어있을 것입니다. 직접 소스설치하셨거나 다른 배포판의 경우에는 nobody 등으로 되어있을 수도 있고요. 이 부분은 apache 환경설정 파일에 User Group 부분에 나와있으니 그 부분 그대로 적용하시면 될 것 같습니다.
XE 뿐만 아니라 적어도 PHP 쓰는 애플리케이션은 사정이 다 비슷비슷하지 않을까 싶습니다.
물론 서버 구성 및 환경설정에 따라 이 방법의 적용이 안될 수 있습니다. 이 부분 감안하시어 진행하시기 바라며 잘 되지 않는 경우 권한만 변경한 것이니 원래대로 원복해주시면 되실 것입니다.
제가 아직 이런 분야에 전문적이진 않고, 아마 리눅스 서버에 조금이라도 관심있으시거나 잘 다루시는 수퍼유저라면 아시는 부분이겠지만, 혹 이쪽으로 입문하셨거나 관심 있으신 분 있으시면 보고 도움되시라고 글 함 적어봅니다 :)
댓글 0
제목 | 글쓴이 | 날짜 |
---|---|---|
xe module, sample 생성기 [9] | 천재ㅐ재 | 2014.07.24 |
네이버 SMTP로 인증메일 보내기 [12] | Neder | 2013.08.26 |
첨부파일 제한 등을 1M 이하인 K 단위로 제한할 수 있게 설정 [1] | sejin7940 | 2014.08.07 |
UX를 편리하게 하기 위한 7 CSS 팁 | gamgak2895 | 2014.08.07 |
코어 수정하지 않고 게시물 첨부 파일 사용제한 | Happyphp | 2014.08.07 |
XE 설치 시 안전한 폴더권한 설정하기 (chown 사용) | 컴토피아 | 2014.08.07 |
특정 도메인 가입 않되게 (인증메일 관련) | 컴박살 | 2014.08.06 |
비밀번호 변경시 비밀번호 재입력 생략하기 | Summer | 2014.08.06 |
자주 쓰지 않지만, 알아두면 좋은 명령어들.. | SIN | 2014.08.06 |
fedora core4 기준으로 iptables 최소한 이정도는 막아줘야 할듯,, [3] [1] | 인호씨 | 2005.11.19 |
게시글 주소 아주 짧게 줄이기 [11] | 웹 엔진 | 2011.08.07 |
Bind 설정하기 | 뚱녀파파 | 2014.07.30 |
잦은 등급변경으로, 회원 등급이 엉켰을 경우 해결방법. [1] | NZ448 | 2009.09.10 |
MySQL Replication 사용중 Binary Log 삭제 하기 | 박희망찬삶 | 2014.07.29 |
게시판 데이터 일괄 삽입 방법 [1] | Happyphp | 2014.07.26 |
짧은 주소를 가능 하게 하는 서버(아파치, httpd) 설정 [3] | 꿈섬 | 2014.07.27 |
인증메일 안가는 문제- 완전 간단 해결 | 꿈섬 | 2014.07.27 |
/XE/떼어 내기 방법... | 꿈섬 | 2014.07.27 |
CURL 등 리퀘스트가 느리다고 생각될때 [1] | 銀童 | 2014.07.25 |
[초보팁] .htaccess 파일을 이용하여 여러가지 주소 한 주소로 리다이렉트 하기 ( 주소 통합 ) [5] | 태풍_님 | 2014.07.23 |