웹 사이트를 실행하는 동일한 사용자를 사용하여 배포해야 합니까?

웹 사이트를 실행하는 동일한 사용자를 사용하여 배포해야 합니까?

최근에 travis 빌드 및 배포를 설정한 Nginx에서 제공하는 웹 사이트가 있습니다.

Nginx는 사용자로 웹사이트를 운영합니다 www-data. deployTravis가 서버에 SSH로 접속하여 웹사이트를 배포할 수 있도록 사용자를 생성했습니다 . 배포된 파일은 deploy웹사이트를 운영하는 사용자( )와는 다른 사용자를 소유자로 하여 저장됩니다 www-data.

이 설정으로 사이트를 운영하면 권한 문제가 걱정됩니다. 웹 사이트를 실행하고 배포하는 데 동일한 사용자 www-data/를 사용해야 합니까? deploy이 접근 방식을 사용하면 웹 사이트를 실행하는 사용자가 SSH를 통해 원격으로 로그인하는 데 문제가 있습니까?

이것에 대해 나에게 가르쳐주십시오.

답변1

실제로 이러한 파일을 소유해서는 안 됩니다. 이는 www-dataNginx가 해당 파일을 수정할 수 있다는 의미이며, 이는 대부분의 경우(자체 업데이트가 필요한 CMS가 아닌 이상) 원하는 바가 아닙니다.

따라서 모든 파일은 deploy.

CMS이고 여러 폴더에 작성해야 하는 경우 매우 적은(1?) 폴더가 실제로 속해야 합니다 www-data. 배포에서 첫 번째 설치도 수행하면 문제가 발생할 수 있습니다. 사용자에게 수동 단계를 제공하거나 작업을 수행하는 특수 도구가 있지만 이것이 일회성 작업이라면 수동으로 수행하는 것이 쉬울 것입니다(특히 이와 같은 폴더가 하나만 있기 때문에 그렇죠?) CMS 또한 그러한 문제가 있는지 알려주고 페이지를 제공하는 대신 중지할 수도 있습니다. 이렇게 하면 즉시 알 수 있으며 파일을 업로드하거나 유사한 작업을 수행할 때 문제를 피할 수 있습니다.

물론 파일을 소유한 것은 아니지만 www-data읽어야 합니다 www-data. 따라서 다른 사람이 읽을 수 있도록 설정 -rw-r--r--하거나( ) 그룹을 설정하는 것을 고려하십시오 www-data( -rw-r-----). 대부분의 경우 나는 사람들이 이 그룹에 들어가지도 않는 것을 봅니다. 더 안전하기 때문에 다른 사람들이 파일에 액세스하도록 허용합니다.

deploy물론 이는 Nginx가 이 사용자 및 그룹에 액세스할 수 없다는 의미이기도 합니다.

관련 정보