Tomcat7 인스턴스가 tomcat7(또는 다른) 사용자로 실행되고 있는지 확인하는 권장 방법은 무엇입니까?
상단에 'su tomcat7'을 수정 tomcat7-instance/bin/startup.sh
하고 추가 할 수 있다고 가정합니다 .tomcat7-instance/bin/shutdown.sh
Tomcat6에서는 환경 변수인 것 같습니다 TOMCAT6_USER
.
답변1
가장 일반적인 방법은 표준 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
답변2
편집: 아래 댓글을 읽어보세요! 이 솔루션은 모든 상황에 적용되지 않을 수 있습니다.
허용되는 답변은 훌륭하지만 Ubuntu 14.04에서 Tomcat 7을 실행했기 때문에 모든 것을 실행하려면 수행해야 할 몇 가지 추가 작업이 있었습니다.
- 파일을 편집하기 전에 tomcat 서비스를 중지해야 합니다
/etc/default/tomcat7
. 사용자 및 그룹을 변경하면 더 이상 이전 사용자를 사용한 서비스를 중지할 수 없습니다. 파일에서 사용자 및 그룹 변경
/etc/default/tomcat7
폴더
/var/log/tomcat7
와 모든 파일의 소유권을 변경해야 합니다. 모든 adm 사용자가 로그를 읽을 수 있도록 adm 그룹을 유지하는 것이 장점이라는 점에 유의하세요.sudo chown -R newuser:adm /var/log/tomcat7
폴더 소유권 변경
/var/lib/tomcat7/webapps
sudo chown -R newuser:newgroup /var/lib/tomcat7/webapps
Ubuntu 14.04의 포트 80/443에서 실행하는 경우 authbind 파일의 소유권을 변경해야 합니다.
sudo chown newuser /etc/authbind/byport/80
sudo chown newuser /etc/authbind/byport/443
작업 폴더의 소유권 변경
sudo chown newuser:adm /var/cache/tomcat7
sudo chown -R newuser:newgroup /var/cache/tomcat7/Catalina
구성 파일을 읽을 수 있게 만듭니다. 여기에는 두 가지 옵션이 있습니다. 다음을 수행하여 tomcat7 그룹에 새 사용자를 추가합니다.
sudo usermod -a -G tomcat7 newuser
...또는 구성 파일의 소유권을 변경합니다.
sudo chown -R :newgroup /var/lib/tomcat7/conf/*
로그 파일 구성 파일 등과 같이 웹앱이 액세스하는 다른 파일이 있는 경우 해당 파일의 소유권도 변경해야 합니다.
- 이제 새 사용자와 함께 서비스를 다시 시작할 준비가 모두 완료되었습니다.
편집 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 사용자에 대해 홈 폴더가 변경되는 것을 방지할 수 있습니다.