서버에서 chmod를 웹으로 실행하면 안되게 막아둔 것 해결하는 법?
본문
php 파일 만들어서 chmod 실행하는데
아무리 변경해도 디렉토리 권한이 안되어서 다른 호스팅에서 해 보니 잘 됩니다.
<?php결론은 서버에서 막은 것 같은데, 해결 방법이 없을까요?
답변 3
혹은 디랙토리명을 잘못입력한건 아닌지(대소문자를 구분합니다 리눅스계열의 os는)
등을 확인해보셨는지요?
보통의 아니 대부분의 호스팅에서는 chmod를 막진 않습니다.
정말 그게 의심되면 호스팅사에 문의하시는게 빠릅니다.
대체명령어가 없는걸로 알고있습니다.
exec 함수는 php 에서 외부 프로그램을 실행시키는 용도로 사용됩니다.
문의해주신 코드는 php 에서 리눅스의 chmod 명령어를 실행시키는 것인데
보안 상의 이유로 exec 함수를 막아놓는 경우가 있습니다.
chmod 는 php 내장함수 http://php.net/manual/en/function.chmod.php 도 있습니다.
<?php
chmod('1234', 0750);
?>
위와 같은 코드로 퍼미션을 변경하는 것이 가능합니다.
!-->아래는 문의한 결과 답변인데요... 제 생각에는 ssh 같은 접속 프로그램으로 바꿀 수 있을 것 같아 질문 올린 것입니다.
==========================================================================================
까페24와 저희의 차이점은
저희는 서버내 권한이 2개입니다.
웹에서 생성되거나 첨부되는 것은 웹서버에서 올라오므로 웹서버 권한으로 됩니다.
그렇게 되어야 저장이 됩니다.
유저가 ftp로 올리거나 계정내에서 풀어낸 것은 유저권한입니다.
저희는 홈용량을 제한하지 않으므로 서버의 기본권한으로 운영하는 것이고
까페24는 홈용량으로 비용을 책정하므로 유저권한으로 강제로 만드는 것입니다.
즉 저희쪽에서는 웹서버 권한이여야 할 폴더는 그래야 저장이 됩니다.
까페24는 두 권한의 구분없이 유저권한이니 유저권한으로도 동작하는 것입니다.
저희쪽만 설명드리면,
두가지 방법이 있습니다.
썸네일이 저장되는 폴더와 경로를 말씀해주시면 웹서버 권한 nobody로 해드리거나
회원님께서 직접하실 수 있는 방법은 707 이상으로 해당 폴더의 퍼미션을 높이시면 해결되실 것입니다.
도움되셨으면 합니다.