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.