Tomcat7을 tomcat7 또는 다른 사용자로 실행하십시오.


10

Tomcat7 인스턴스가 tomcat7 (또는 다른) 사용자로 실행되도록하는 권장 방법은 무엇입니까?

상단에 'su tomcat7'을 수정 tomcat7-instance/bin/startup.sh하고 tomcat7-instance/bin/shutdown.sh추가 할 수 있다고 가정합니다 .

Tomcat6에서는 환경 변수라고 생각합니다 TOMCAT6_USER.


만약 당신이 "안전한 방법"을 요구한다면 아마도 논쟁을 불러 일으킬 것입니다. 이제 "tomcat7에 다른 사용자를 설정하는 방법"을 묻는다면 그것은 대답 할 수 있습니다. BTW, tomcat은
— 톰

답변:


13

가장 일반적인 방법은 다음을 사용하여 표준 tomcat7패키지 를 설치하고 apt-get시작하는 것입니다.

sudo service tomcat7 start

/etc/default/tomcat7이 발췌 부분에서 볼 수 있듯이 기본 사용자 및 그룹이 구성되어 있습니다.

# Run Tomcat as this user ID. Not setting this or leaving it blank will use the
# default of tomcat7.
TOMCAT7_USER=tomcat7

# Run Tomcat as this group ID. Not setting this or leaving it blank will use
# the default of tomcat7.
TOMCAT7_GROUP=tomcat7

TOMCAT7_USER와 TOMCAT7_GROUP은 내가 찾고 있던 것입니다. 감사합니다
— Adrian Ber

tomcat7-instance / bin / setenv.sh에서 TOMCAT7_USER를 수정하고 서버를 시작했습니다. 그러나 ps를 사용하여 프로세스를 표시하면 사용자는 TOMCAT7_USER에 지정된 사용자가 아닙니다.
— Adrian Ber

왜 직접 수정하지 /etc/default/tomcat7않습니까?
— David Levesque

Tomcat 사용자 인스턴스가 두 개이고 다른 사용자로 시작하고 싶다고 가정 해 봅시다.
— Adrian Ber

그것은 익숙하지 않은 시나리오이지만,이 경우 Tomcat을 서비스로 실행할 수 없으며 위의 구성이 적용되지 않는다고 생각합니다. 아마도 그것에 대해 별도의 질문을해야 할 수도 있습니다.
— David Levesque

11

편집 : 아래의 의견을 읽으십시오! 이 솔루션이 모든 상황에 적용되는 것은 아닙니다.

허용되는 답변은 훌륭하지만 Ubuntu 14.04에서 Tomcat 7을 실행 한 후 모든 것을 실행하기 위해 수행해야 할 추가 작업이 있습니다.

  1. 파일을 편집하기 전에 Tomcat 서비스를 중지해야합니다 /etc/default/tomcat7. 사용자와 그룹을 변경하면 더 이상 이전 사용자를 사용하여 서비스를 중지 할 수 없습니다.
  2. 파일에서 사용자 및 그룹 변경 /etc/default/tomcat7

  3. 폴더 /var/log/tomcat7와 모든 파일의 소유권을 변경해야 합니다. 모든 adm 사용자가 로그를 읽을 수 있도록 adm 그룹을 유지하는 것이 좋습니다.

    sudo chown -R newuser:adm /var/log/tomcat7

  4. 폴더 소유권 변경 /var/lib/tomcat7/webapps

    sudo chown -R newuser:newgroup /var/lib/tomcat7/webapps

  5. Ubuntu 14.04의 포트 80/443에서 실행중인 경우 인증 파일의 소유권을 변경해야합니다.

    sudo chown newuser /etc/authbind/byport/80

    sudo chown newuser /etc/authbind/byport/443

  6. 작업 폴더의 소유권 변경

    sudo chown newuser:adm /var/cache/tomcat7

    sudo chown -R newuser:newgroup /var/cache/tomcat7/Catalina

  7. 구성 파일을 읽을 수있게 만드십시오. 여기에는 두 가지 옵션이 있습니다. 다음과 같이 tomcat7 그룹에 새 사용자를 추가하십시오.

    sudo usermod -a -G tomcat7 newuser

    ... 또는 구성 파일의 소유권을 변경하십시오.

    sudo chown -R :newgroup /var/lib/tomcat7/conf/*

  8. 로그 파일 구성 파일 등과 같이 웹 응용 프로그램이 액세스하는 다른 파일이 있으면 해당 파일의 소유권도 변경해야합니다.

  9. 이제 모든 것이 새로운 사용자와 함께 서비스를 다시 시작할 준비가되었습니다.

편집 2 : Tomcat 8 및 Ubuntu 18.04로 업그레이드 한 후 다른 사용자로 Tomcat을 실행할 때 다른 문제가 발생했습니다. 스크립트 /etc/init.d/tomcat8에서 다음 줄은 tomcat 사용자의 홈 폴더를 변경하는 것처럼 보이지만 다른 사용자를 사용하는 경우 원하는 결과가 아닙니다.

usermod --home /var/lib/tomcat8 $TOMCAT8_USER > /dev/null 2>&1 || true

이 줄을 제거하거나 주석 처리하면 새 Tomcat 사용자에 대한 홈 폴더를 변경하지 않아도됩니다.


답변에 큰 문제가 있습니다. 다음 tomcat7 패키지 업그레이드 (보안 수정 / 버그 수정)에서 apt는 동일한 사용자 (tomcat7)를 사용하여 새 tomcat7 패키지 버전을 다시 설치하므로 설치가 중단됩니다. 따라서 무인 업그레이드를 수행 할 수 없으며 업그레이드 할 때마다 숨을 쉬어야합니다.
— user323094

나는 그것을 깨닫지 못했고 현재로서는 좋은 해결책이 없습니다. 어떤 제안, 누구?
— stenix

Tomcat9에는 이러한 파일이 없습니다.
— Stephane
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.