Nginx에서 제공하는 웹사이트가 있고 최근에 이에 대한 travis 빌드 및 배포를 설정했습니다.
Nginx는 사용자로 웹사이트를 실행하고 있습니다 www-data
. deploy
Travis가 SSH를 통해 서버에 로그인하여 웹사이트를 배포할 수 있도록 사용자를 생성했습니다 . 배포된 파일은 deploy
웹 사이트를 실행하는 사용자( )와 다른 소유자로 저장됩니다 www-data
.
이 설정으로 웹사이트를 실행하는 데 권한 문제가 발생할까봐 걱정됩니다. 웹 사이트를 실행하고 배포하는 데 동일한 사용자 www-data
/를 사용해야 합니까? deploy
이 접근 방식을 사용하면 웹 사이트를 실행하는 사용자가 SSH를 통해 원격으로 로그인하도록 허용하면 문제가 발생합니까?
이에 대해 저에게 계몽해 주십시오.
답변1
실제로, Nginx가 파일을 수정할 수 있기 때문에 파일을 소유해서는 안 됩니다 www-data
. 이는 대부분의 경우 사용자가 원하는 것이 아닙니다(자체 업데이트가 필요한 CMS가 아닌 한).
따라서 모든 파일은 deploy
.
CMS이고 몇 개의 폴더에 작성해야 하는 경우 해당 폴더는 실제로 www-data
. 배포 시 첫 번째 설치도 수행하는 경우 문제가 발생할 수 있습니다. 사용자에게 수동 단계를 실행하도록 제안하거나 해당 작업을 수행하는 특수 도구를 사용하지만 일회성 작업인 경우 수동으로 수행하면 충분히 쉬울 것입니다(특히 그러한 폴더가 하나만 있기 때문에 그렇죠?) CMS에서는 이러한 문제가 있으면 알려주고 페이지를 제공하는 대신 중지할 수도 있습니다. 이렇게 하면 즉시 알 수 있으며 파일을 업로드하거나 유사한 작업을 시도할 때 문제가 발생하는 것을 피할 수 있습니다.
물론 파일은 의 소유가 아니지만 www-data
에서 읽을 수 있어야 합니다 www-data
. 따라서 다른 사람이 읽을 수 있도록 설정하거나( -rw-r--r--
) 그룹을 설정하는 방법을 살펴보세요 www-data
( -rw-r-----
). 대부분의 경우 사람들이 그룹을 사용하는 위험을 감수하지 않는 것을 보았습니다. 그렇게 하는 것이 더 안전하기 때문에 다른 사람들이 파일에 액세스하도록 허용합니다.
물론 이는 Nginx가 deploy
사용자 및 그룹에 대한 액세스 권한이 없음을 의미하기도 합니다.