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.


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.


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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.