루트가 아닌 사용자를 사용하여 Tomcat 데몬 실행

루트가 아닌 사용자를 사용하여 Tomcat 데몬 실행

tomcat8에 포함된 웹 애플리케이션 java를 실행할 수 있게 해주는 alpine(rootfs)으로 보호되는 컨테이너 도커를 생성하려고 합니다. 특히 tomcat 데몬은 어떤 사용자로 실행되어야 합니까?

나는 이것을 언급하는 Apache Tomcat 8에 대한 문서를 읽고 있는데 혼란이 있습니다. Tomcat 8 문서에서:

Tomcat은 루트 사용자로 실행되어서는 안 됩니다.. Tomcat 프로세스 전용 사용자를 생성하고 이 사용자에게 운영 체제에 필요한 최소 권한을 제공하십시오. 예를 들어 Tomcat 사용자를 사용하여 원격으로 로그인하면 안 됩니다.

그러나 그는 이렇게 말했습니다.

ASF의 Tomcat 인스턴스를 예로 들면(자동 배포가 비활성화되고 웹 애플리케이션이 확장된 디렉터리로 배포됩니다)표준 구성은 Tomcat 그룹의 루트가 모든 Tomcat 파일을 소유하고, 소유자는 읽기/쓰기 권한을 갖고, 그룹은 읽기 권한만 갖고, 전체는 권한이 없도록 하는 것입니다.루트가 아닌 Tomcat 사용자가 소유한 로그, 임시 디렉터리 및 작업 디렉터리는 예외입니다. 즉, 공격자가 Tomcat 프로세스를 손상시키더라도 Tomcat 구성을 변경하거나 새 웹 애플리케이션을 배포하거나 기존 웹 애플리케이션을 수정할 수 없습니다. Tomcat 프로세스는 이러한 권한을 유지하기 위해 umask 007로 실행됩니다.

따라서 어떤 사용자 tomcat을 실행해야 하는지 명확하지 않습니다. CATALINA_HOME/bin/startup.sh의 소유자가 tomcat 그룹의 루트 사용자이고 tomcat 데몬을 실행하기 위해 다른 사용자(예: tomcat 그룹이 있는 앱)를 생성하는 경우 CATALINA_HOME/bin/startup.sh를 실행한 후 소유자 사용자는 루트이고 그룹에는 읽기 권한만 있으므로 시작되지 않습니다.

루트가 아닌 사용자로 tar.gz 바이너리를 사용하여 tomcat 데몬을 실행한 경험이 있는 사람이 있습니까?

미리 감사드립니다.

답변1

사용자 계정을 만듭니다 tomcat. 이 그룹의 구성원인지 확인하세요 tomcat.

문서에 "읽기" 그룹 권한이 언급되어 있는 경우 이를 소유자와 동일하게 만드세요.쓰기 권한이 없으면. 따라서 사용자에게 스크립트에 대한 읽기, 쓰기 및 실행 권한이 있으면 그룹에도 읽기 및 실행 권한이 있어야 합니다.

문서에 있는 보안 권장 사항의 목적은 사용자가 tomcatTomcat 응용 프로그램을 실행할 수 있지만 파일을 변경할 수 없도록 허용하는 것입니다.

관련 정보