서버에서 chmod를 웹으로 실행하면 안되게 막아둔 것 해결하는 법?

서버에서 chmod를 웹으로 실행하면 안되게 막아둔 것 해결하는 법?

QA

서버에서 chmod를 웹으로 실행하면 안되게 막아둔 것 해결하는 법?

본문

php 파일 만들어서 chmod 실행하는데 

아무리 변경해도 디렉토리 권한이 안되어서 다른 호스팅에서 해 보니 잘 됩니다.

<?php
exec('chmod 707 -R 1234');
?>

결론은 서버에서 막은 것 같은데, 해결 방법이 없을까요?

 

이 질문에 댓글 쓰기 :

답변 3

디렉토리가 없었던건 아니었는지
혹은 디랙토리명을 잘못입력한건 아닌지(대소문자를 구분합니다 리눅스계열의 os는)
등을 확인해보셨는지요?

보통의 아니 대부분의 호스팅에서는 chmod를 막진 않습니다.

정말 그게 의심되면 호스팅사에 문의하시는게 빠릅니다.

대체명령어가 없는걸로 알고있습니다.

하나더 chmod로 퍼미션을 변경하려고하는 디렉토리의 접근권한이 웹이 접근하고 수정/쓰기 권한이 있는지 확인하세요
자신의 계정명과 웹이 실행되고 있는 데몬의 계정명이 다른게 대부분이므로 이에 대한 권한이 있는지 확인이 필요합니다.

그누보드 설치시 707로 변경해주어 웹에서 필요한 디렉토리를 생성하도록 하는 원리와 같습니다.

즉 해당 디렉토리에 웹데몬이 접근 및 수정/추가 권한이 없는 다른 계정인경우 해당 명령어가 안될수 있습니다.

글 남겨주신 것이 고마워서 채택했어요.
해당 디렉토리 ftp에서 707로 바꿔도 썸네일이 생성되지 않아요.
바뀐 것처럼 보일 뿐.... 정말 이상해요.
이게 정말 웃기는게
그대로 백업해서 카페 24가서 풀면 썸네일 잘 생성됩니다.

문의한 호스팅사에서만 생성이 안되요.
그냥 게시판 게시글 올렸을 때 썸네일이 생성이 안되면 그런가보다 하고
이 호스팅 안쓰면 그만인데....
게시판 게시글은 썸네일이 잘 생성이 되는데, 최근 게시물에서만 썸네일이 생성이 안됩니다.
정말 이상한 일이에요.(카페24에서는 되는데... )

exec 함수는 php 에서 외부 프로그램을 실행시키는 용도로 사용됩니다.

문의해주신 코드는 php 에서 리눅스의 chmod 명령어를 실행시키는 것인데

보안 상의 이유로 exec 함수를 막아놓는 경우가 있습니다.

 

chmod 는 php 내장함수 http://php.net/manual/en/function.chmod.php 도 있습니다.

 


<?php
chmod('1234', 0750);
?>

 

위와 같은 코드로 퍼미션을 변경하는 것이 가능합니다.

편리님이 답변을 달아주시다니 감격입니다.
그런데, 말씀하신 것도 해봤어요...
오늘 phpschool 가서 질답 게시판 4시간 째 비슷한 게시물 검색하며 읽고 있는데,
아무래도 그냥 여기 호스팅사를 포기하고 잘 되는 호스팅사에서 하는 것이 ... ㅠㅠ

아래는 문의한 결과 답변인데요... 제 생각에는 ssh 같은 접속 프로그램으로 바꿀 수 있을 것 같아 질문 올린 것입니다.

 

==========================================================================================

 

까페24와 저희의 차이점은
저희는 서버내 권한이 2개입니다.
웹에서 생성되거나 첨부되는 것은 웹서버에서 올라오므로 웹서버 권한으로 됩니다.
그렇게 되어야 저장이 됩니다.
유저가 ftp로 올리거나 계정내에서 풀어낸 것은 유저권한입니다.

저희는 홈용량을 제한하지 않으므로 서버의 기본권한으로 운영하는 것이고
까페24는 홈용량으로 비용을 책정하므로 유저권한으로 강제로 만드는 것입니다.

즉 저희쪽에서는 웹서버 권한이여야 할 폴더는 그래야 저장이 됩니다.
까페24는 두 권한의 구분없이 유저권한이니 유저권한으로도 동작하는 것입니다.

저희쪽만 설명드리면,
두가지 방법이 있습니다.
썸네일이 저장되는 폴더와 경로를 말씀해주시면 웹서버 권한 nobody로 해드리거나
회원님께서 직접하실 수 있는 방법은 707 이상으로 해당 폴더의 퍼미션을 높이시면 해결되실 것입니다.

도움되셨으면 합니다.

답 나왔네요 ftp로 접속하여 해당 디렉토리의 퍼미션을 707로 바꾸시면 다음부터는 웹에서 작업 가능하시겠네요.
즉 data 폴더의 퍼미션을 707로 바꾸시면 되겠네요

앗 데이터 디렉토리 예긴 왜 나온거지 킁 암튼
디렉토리 하나를 707로 잡아두고 웹에서는 그 디렉토리 안에서 디렉토리를 생성하고 파일도 생성하고 chmod로 퍼미션도 바꾸고 하는 작업을 하시면 됩니다.

참고 : 그누보드의 썸네일은 보통 그누보드 설치후 생성되는 data안에서 작업합니다

답변을 작성하시기 전에 로그인 해주세요.
전체 123,674 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT