Problèmes d'autorisation avec Tomcat

9

J'ai installé Tomcat 7 en suivant le guide Ubuntu . Le serveur fonctionne et me donne le message "Ça marche!" page sur http://localhost:8080/.

Maintenant, je veux configurer ma propre application Web à l'aide de Netbeans. J'ai généré un nouveau projet Web avec Java EE 6 et Tomcat 7. L'utilisateur est sur le /var/lib/tomcat7/conf/tomcat-users.xmlfichier correctement configuré.

Lorsque j'exécute le projet, tout semble correct, mais lorsque j'ouvre le navigateur, il affiche une erreur 500 .

  • La sortie Tomcat mentionne des erreurs de permission essayant d'accéder tomcat7/logset
  • Les journaux IDE tentent d'accéder tomcat7/conf.

Autorisations de fichiers:

lucio@lucio-pc:/$ ll /var/lib/tomcat7/logs
lrwxrwxrwx 1 root root 17 jul 24 18:07 /var/lib/tomcat7/logs -> ../../log/tomcat7/
lucio@lucio-pc:/$ ll /var/log/tomcat7/
total 136
drwxr-x---  2 tomcat7 adm      4096 ago 28 10:50 ./
drwxrwxr-x 15 root    syslog   4096 ago 28 09:29 ../
-rw-r--r--  1 tomcat7 tomcat7   800 ago 26 17:23 catalina.2014-08-26.log.gz
-rw-r--r--  1 tomcat7 tomcat7  5173 ago 27 21:59 catalina.2014-08-27.log
-rw-r--r--  1 tomcat7 tomcat7 31285 ago 28 10:36 catalina.2014-08-28.log
-rw-r--r--  1 tomcat7 root    44192 ago 28 10:36 catalina.out
-rw-r--r--  1 tomcat7 tomcat7    45 ago 26 16:19 localhost.2014-08-26.log.gz
-rw-r--r--  1 tomcat7 tomcat7     0 ago 27 11:15 localhost.2014-08-27.log
-rw-r--r--  1 tomcat7 tomcat7   433 ago 28 09:49 localhost.2014-08-28.log
-rw-r--r--  1 tomcat7 tomcat7  7435 ago 26 17:23 localhost_access_log.2014-08-26.txt
-rw-r--r--  1 tomcat7 tomcat7     0 ago 27 11:15 localhost_access_log.2014-08-27.txt
-rw-r--r--  1 tomcat7 tomcat7 15186 ago 28 09:58 localhost_access_log.2014-08-28.txt

Je ne comprends pas pourquoi ne peut pas accéder aux fichiers, vous pouvez voir que l'utilisateur et le groupe tomcat7ont des autorisations sur les fichiers. Y a-t-il un utilisateur pour la JVM qui a besoin de privilèges sur les fichiers?

J'ai également essayé de changer la propriété des fichiers comme mentionné ici, mais cela ne change pas du tout.


Le /etc/default/tomcat7fichier a:

TOMCAT7_USER=tomcat7
TOMCAT7_GROUP=tomcat7

Je suppose donc qu'il fonctionne en tant tomcat7qu'utilisateur.


J'ai ajouté mon utilisateur dans le tomcat7groupe:

sudo usermod -aG tomcat7 $USER

Et puis redémarré la machine, mais le problème persiste.

Lucio
la source
Tomcat fonctionne-t-il en tant qu'utilisateur Tomcat7?
muru
Cela fait trop longtemps que je n'ai pas utilisé tomcat, mais 2 choses me viennent à l'esprit : n'avez- vous pas besoin d'être dans le groupe tomcat7 pour permettre au programme d'accéder au journal? Et aussi, il semble qu'il veuille vraiment accéder à un fichier temporaire dans /var/lib/tomcat7/temp; cela existe-t-il? Il peut s'agir du même problème d'autorisation. Peut-être que vous avez juste besoin de vous ajouter au groupe tomcat7.
Marty Fried
En outre, vous devrez rendre le groupe de fichiers accessible en écriture pour utiliser mon idée. Et il y a plus d'informations ici qui pourraient vous aider.
Marty Fried
Il semble que l'utilisateur (humain ou application) qui exécute tomcat7 n'a pas la permission d'accéder à / var / lib / tomcat7 / et surtout au dossier logs.
MickyInTheSky

Réponses:

9

J'ai remarqué deux problèmes ici.

Deux lignes du journal des erreurs me sont apparues:

SEVERE: Cannot find specified temporary folder at /var/lib/tomcat7/temp  

et:

java.io.FileNotFoundException: /var/lib/tomcat7/conf/tomcat-users.xml (Permission denied)

En faisant un peu de diagnostic avec Lucio , j'ai compris que le tomcat-users.xmlfichier n'appartenait pas à Tomcat, mais à la place root. Remplacez les autorisations par les autorisations appropriées en exécutant la commande:

sudo chown tomcat7:tomcat7 /var/lib/tomcat7/conf/tomcat-users.xml

Créez également le dossier /var/lib/tomcat7/tempavec les autorisations tomcat, comme suit:

sudo mkdir /var/lib/tomcat7/temp && sudo chown -R tomcat7:tomcat7 /var/lib/tomcat7/temp

Enfin, la correction des journaux doit être effectuée en faisant /var/lib/tomcat7/logsappartenir à l' tomcat7utilisateur / groupe. Le /var/log/tomcat7/doit également appartenir à l' tomcat7utilisateur ET au groupe.

Kaz Wolfe
la source
Pour moi, changer les permissions sur le tomcat-user.xmlfichier était suffisant. Faire de même pour les journaux n'a pas fonctionné mais l'application fonctionne quand même :-)
Lucio