Welche Methode wird empfohlen, um sicherzustellen, dass eine Tomcat7-Instanz als Benutzer tomcat7 (oder ein anderer) ausgeführt wird?
Ich nehme an, dass ich es ändern tomcat7-instance/bin/startup.sh
und tomcat7-instance/bin/shutdown.sh
oben „su tomcat7“ hinzufügen kann.
Ich glaube, in Tomcat6 war es die Umgebungsvariable TOMCAT6_USER
.
Antwort1
Die gebräuchlichste Methode besteht darin, das Standardpaket tomcat7
mit zu installieren apt-get
und es mit folgendem Befehl zu starten:
sudo service tomcat7 start
Der Standardbenutzer und die Standardgruppe sind /etc/default/tomcat7
wie in diesem Auszug zu sehen konfiguriert:
# 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
Antwort2
EDIT: Bitte lesen Sie die Kommentare unten! Diese Lösung ist möglicherweise nicht auf alle Situationen anwendbar.
Die akzeptierte Antwort ist großartig, aber da ich Tomcat 7 auf Ubuntu 14.04 verwende, musste ich noch einige zusätzliche Dinge tun, um alles zum Laufen zu bringen:
- Sie müssen den Tomcat-Dienst stoppen, bevor Sie die Datei bearbeiten
/etc/default/tomcat7
. Sobald Sie den Benutzer und die Gruppe geändert haben, ist es nicht mehr möglich, einen Dienst mit dem alten Benutzer zu stoppen. Ändern Sie den Benutzer und die Gruppe in der Datei
/etc/default/tomcat7
Sie müssen den Eigentümer des Ordners
/var/log/tomcat7
und aller darin enthaltenen Dateien ändern. Beachten Sie, dass es von Vorteil ist, die ADM-Gruppe beizubehalten, damit alle ADM-Benutzer die Protokolle lesen können.sudo chown -R newuser:adm /var/log/tomcat7
Eigentümer des Ordners ändern
/var/lib/tomcat7/webapps
sudo chown -R newuser:newgroup /var/lib/tomcat7/webapps
Wenn Sie auf Port 80/443 unter Ubuntu 14.04 arbeiten, müssen Sie den Eigentümer der Authbind-Dateien ändern:
sudo chown newuser /etc/authbind/byport/80
sudo chown newuser /etc/authbind/byport/443
Eigentümer des Arbeitsordners ändern
sudo chown newuser:adm /var/cache/tomcat7
sudo chown -R newuser:newgroup /var/cache/tomcat7/Catalina
Machen Sie die Konfigurationsdateien lesbar. Hier haben Sie zwei Möglichkeiten: Fügen Sie Ihren neuen Benutzer entweder zur Gruppe tomcat7 hinzu, indem Sie:
sudo usermod -a -G tomcat7 newuser
… oder ändern Sie den Eigentümer der Konfigurationsdateien:
sudo chown -R :newgroup /var/lib/tomcat7/conf/*
Wenn Ihre Web-Apps auf andere Dateien zugreifen, z. B. Protokolldateien, Konfigurationsdateien usw., müssen Sie auch den Eigentümer dieser Dateien ändern.
- Jetzt sollte alles bereit sein, um den Dienst mit dem neuen Benutzer erneut zu starten.
BEARBEITEN 2: Nach dem Upgrade auf Tomcat 8 und Ubuntu 18.04 trat ein weiteres Problem auf, wenn Tomcat als anderer Benutzer ausgeführt wurde. Im Skript /etc/init.d/tomcat8
scheint die folgende Zeile den Home-Ordner des Tomcat-Benutzers zu ändern, aber das Ergebnis ist nicht das gewünschte, wenn Sie einen anderen Benutzer verwenden.
usermod --home /var/lib/tomcat8 $TOMCAT8_USER > /dev/null 2>&1 || true
Durch Entfernen oder Auskommentieren dieser Zeile können Sie verhindern, dass der Home-Ordner für den neuen Tomcat-Benutzer geändert wird.