Autorisation refusée lors de l’utilisation de l’application Web Tomcat 8 sur Amaon EC2

Je ne trouve pas comment obtenir des permissions d’écriture et de lecture dans le dossier tomcat.

J’ai suivi le tutoriel de DigitalOcean sur la configuration de Tomcat . La seule chose que j’ai faite est que j’ai utilisé Java 8 au lieu de 7, mais je ne pense pas que cela soit à l’origine du problème.

Lorsque je me connecte au gestionnaire d’applications Web tomcat et téléporte la guerre, l’erreur suivante s’affiche:

FAIL – Échec du téléchargement du déploiement, exception: java.io.FileNotFoundException: /opt/tomcat/webapps/SimpleServlet.war (autorisation refusée)

Lorsque j’utilise Filezilla pour me connecter à EC2 et que je veux déposer le fichier dans le dossier webapps:

Erreur: /opt/tomcat/webapps/SimpleServlet.war: ouvert en écriture: autorisation refusée
Erreur: le transfert de fichier a échoué

La sortie de ls -la /opt/tomcat/webapps est:

 total 28 drwxr-xr-x 7 root root 4096 Nov 20 09:19 . drwxr-xr-x 9 root root 4096 Nov 28 16:34 .. drwxr-xr-x 14 root root 4096 Nov 28 16:34 docs drwxr-xr-x 6 root root 4096 Nov 28 16:34 examples drwxr-xr-x 5 root root 4096 Nov 28 16:34 host-manager drwxr-xr-x 5 root root 4096 Nov 28 16:34 manager drwxr-xr-x 3 root root 4096 Nov 28 16:34 ROOT 

mais c’est la structure de dossier que l’on peut voir dans FileZilla

Image filezilla ec2 structure

Sur le tutoriel, j’ai suivi cette étape:

Créez ensuite un nouvel utilisateur tomcat. Nous ferons de cet utilisateur un membre du groupe tomcat, avec un répertoire personnel de / opt / tomcat (où nous installerons Tomcat) et un shell de / bin / false (afin que personne ne puisse se connecter au compte):

 sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat 

Est-ce que ceci pourrait être le problème?

/opt/tomcat est déclaré être le répertoire de base de l’utilisateur tomcat , mais appartient à l’utilisateur root (l’utilisateur tomcat ne disposant pas de droits en écriture).

En nettoyant le didacticiel, en particulier la section des permissions, j’ai des sentiments mitigés quant à la qualité de ce didacticiel. Il parle de “donner à l’utilisateur tomcat un access en écriture au répertoire conf” lors de la modification des permissions du dossier. Ne pas avoir les permissions d’écriture pour l’utilisateur du serveur d’applications Web sur le logiciel exécuté semble raisonnable pour une utilisation en production (un attaquant exploitant le processus tomcat ne pourra pas modifier le logiciel), cela vous empêchera également de déployer des applications avec le gestionnaire d’applications Web tomcat. .

Je préférerais configurer tomcat tant que groupe d’ webapps :

 chgrp -R tomcat /opt/tomcat/webapps 

et lorsque vous avez besoin de déployer de nouvelles applications, ajoutez des permissions en écriture pour ce groupe:

 chmod -R g+w /opt/tomcat/webapps 

que vous supprimez à nouveau après le déploiement:

 chmod -R gw /opt/tomcat/webapps 

(vous devrez exécuter ces commandes avec les privilèges de super utilisateur, préfixez donc sudo si nécessaire). Cela conviendrait également au HowTo de Considérations sur la sécurité Tomcat .