web-dev-qa-db-fra.com

Autorisation refusée lors du déploiement de l'application Web Tomcat 8 sur Amazon EC2

Je ne trouve pas comment obtenir des autorisations d'écriture et de lecture dans le dossier Tomcat.

J'ai suivi 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: échec du transfert de fichier

Le résultat 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 de départ/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?

5
Greg

/opt/Tomcat est déclaré le répertoire de base de l'utilisateur Tomcatname__, mais appartient à l'utilisateur root(l'utilisateur Tomcatne disposant pas de droits en écriture).

En nettoyant le didacticiel, en particulier la section des autorisations, j'ai des sentiments mitigés quant à la qualité de ce didacticiel. Il parle de "donner à l'utilisateur Tomcat un accès en écriture au répertoire conf" tout en modifiant les autorisations du dossier. Ne pas avoir les autorisations 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 Tomcaten tant que groupe webappsname__:

chgrp -R Tomcat /opt/Tomcat/webapps

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

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

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

chmod -R g-w /opt/Tomcat/webapps

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

9
Jens Erat