Quelle sera la méthode recommandée pour garantir qu'une instance Tomcat7 s'exécute en tant qu'utilisateur tomcat7 (ou tout autre)?
Je suppose que je peux modifier tomcat7-instance/bin/startup.sh
et tomcat7-instance/bin/shutdown.sh
ajouter "su tomcat7" en haut.
Dans Tomcat6, je pense que c'était la variable d'environnement TOMCAT6_USER
.
Réponses:
La manière la plus courante consiste à installer le
tomcat7
package standard avecapt-get
et à le démarrer à l'aide de:L'utilisateur et le groupe par défaut sont configurés
/etc/default/tomcat7
comme vous pouvez le voir dans cet extrait:la source
/etc/default/tomcat7
?EDIT: Veuillez lire les commentaires ci-dessous! Cette solution peut ne pas être applicable à toutes les situations.
La réponse acceptée est excellente, mais depuis que j'exécute Tomcat 7 sur Ubuntu 14.04, il y avait des choses supplémentaires que je devais faire pour que tout fonctionne:
/etc/default/tomcat7
. Une fois l'utilisateur et le groupe modifiés, il ne sera plus possible d'arrêter un service en utilisant l'ancien utilisateur.Changer l'utilisateur et le groupe dans le fichier
/etc/default/tomcat7
Vous devez changer la propriété du dossier
/var/log/tomcat7
et de tous ses fichiers. Veuillez noter qu'il est avantageux de conserver le groupe adm afin que tous les utilisateurs adm puissent lire les journaux.sudo chown -R newuser:adm /var/log/tomcat7
Changer la propriété du dossier
/var/lib/tomcat7/webapps
sudo chown -R newuser:newgroup /var/lib/tomcat7/webapps
Si vous utilisez le port 80/443 sur Ubuntu 14.04, vous devez changer la propriété des fichiers authbind:
sudo chown newuser /etc/authbind/byport/80
sudo chown newuser /etc/authbind/byport/443
Changer la propriété du dossier de travail
sudo chown newuser:adm /var/cache/tomcat7
sudo chown -R newuser:newgroup /var/cache/tomcat7/Catalina
Rendez les fichiers de configuration lisibles. Ici, vous avez deux options: Soit vous ajoutez un nouvel utilisateur au groupe tomcat7 en:
sudo usermod -a -G tomcat7 newuser
... ou changez de propriétaire des fichiers de configuration:
sudo chown -R :newgroup /var/lib/tomcat7/conf/*
Si vous avez d'autres fichiers auxquels vos applications Web accèdent, tels que les fichiers de configuration des fichiers journaux, etc., vous devez également modifier la propriété de ces fichiers.
EDIT 2: Après la mise à niveau vers tomcat 8 et Ubuntu 18.04, un autre problème est apparu lors de l'exécution de tomcat en tant qu'utilisateur différent. Dans le script,
/etc/init.d/tomcat8
la ligne suivante semble modifier le dossier de départ de l'utilisateur tomcat mais le résultat n'est pas ce que vous voulez si vous utilisez un autre utilisateur.En supprimant ou en commentant cette ligne, vous pouvez éviter de modifier le dossier de base du nouvel utilisateur tomcat.
la source