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
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?
/opt/Tomcat
est déclaré le répertoire de base de l'utilisateur Tomcat
name__, mais appartient à l'utilisateur root
(l'utilisateur Tomcat
ne 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 Tomcat
en tant que groupe webapps
name__:
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 Sudo
si nécessaire). Cela conviendrait également au HowTo sur les considérations de sécurité de Tomcat .