웹 서버, redis 및 mongodb를 실행하려면 어떤 사용자를 사용해야 합니까?

웹 서버, redis 및 mongodb를 실행하려면 어떤 사용자를 사용해야 합니까?

이 VPS에는 루트, another_one, 그리고 none이라는 세 명의 사용자가 있습니다. 모든 웹 서버 파일, 구성 등 하지만 root실행에 문제가 있습니다. 루트를 웹 서버로 사용하면 시스템이 보안 허점에 노출될 수 있고, 로그인을 시도하면 nobody내가 설정한 적도 없고 모르는 비밀번호를 물어오게 됩니다. 다른 사용자를 만들어야 합니까?

이제 나는 nginx에 대해서만 확신합니다. 루트로 실행하면 프로세스가 none으로 생성됩니다. 하지만 웹 서버와 db 및 redis와 같은 기타 서비스는 어떻습니까?

참고: another_user는 sudo를 수행할 수 있으므로 루트와 다르지 않습니다.

답변1

저는 항상 헌신적인 사용자들과 함께 서비스를 운영합니다. 따라서 다음 사용자를 생성하겠습니다.

  • nginx
  • 몽고
  • 아파치
  • mysql
  • 레디스

실제 서비스를 루트로 실행해서는 안됩니다!

일반적으로 배포판의 패키지 관리자를 사용하여 이러한 애플리케이션을 설치하면 설치의 일부로 각 서비스에 대해 사용자가 자동으로 생성됩니다.

저는 주로 CentOS/RHEL을 사용하는데, Apache 같은 것을 설치하면 "apache"라는 사용자가 자동으로 생성됩니다. MySQL과 Nginx도 마찬가지입니다.

답변2

서비스를 루트로 실행하는 것을 주저하는 것이 옳습니다. 웹 서버에 대해 별도의 사용자를 만드는 것이 가장 좋습니다. 파일 소유권 및 권한에 대한 이 토론을 읽는 것도 나쁘지 않습니다.https://serverfault.com/questions/357108/what-are-the-best-linux-permissions-to-use-for-my-website

관련 정보