보안상의 이유로 디렉토리 퍼미션 설정을 하고 싶습니다.

 

간단히 원하는 작동모습은.

/lib/engine.php 에서 썸네일을 생성하여 특정 폴더에 저장하거나 삭제하고 싶습니다.

그리고 그 폴더에 저장된 썸네일은 외부에 공개하지 않고 싶습니다.

 

현재 섬네일이 저장되는 디렉토리가 777로 되어있는데 뭘로 변경해야할까요...

 

정리.

/lib/engine.php는 "저장" / "삭제"를 할 수 있다.

외부에서는 저장된 파일을 읽을 수 없다.

 

PS.

PHP는 서버에서 구동되는데

굳이 분류하자면 root인가요 daemon인가요? 

  • profile

    대부분 웹서버와 PHP가 같은 권한으로 돌아갑니다. 서버 세팅에 따라 다르지만 apache, nginx, www-data, nobody 중 하나일 가능성이 높아요. phpinfo를 찍어보면 정확하게 나옵니다.

     

    웹서버와 PHP의 권한이 같은 경우, 웹서버에서는 접근할 수 없고 PHP에서만 접근할 수 있는 퍼미션을 만드는 것은 어렵습니다. 퍼미션이 아니라 서버 설정을 통해 막아야 해요. 아파치라면 .htaccess에서 해당 폴더를 deny from all 하면 되고, nginx라면 서버 설정에서 해당 폴더의 loocation을 return 403; 하면 됩니다.

     

    PHP-FPM 방식으로 구동한다면 웹서버와 PHP의 권한을 나누는 것도 가능하지만, 이 경우에도 퍼미션에만 의존하기보다는 서버 설정으로 막는 것이 더 확실합니다.

  • profile ?
    명확한 답변 감사합니다.