J'ai une boîte Linux partagée par divers développeurs. Ils veulent déployer leurs fichiers de guerre dans apache tomcat qui dans un emplacement partagé (/ opt / tomcat).
Puisqu'ils n'ont pas d'accès sudo, je dois changer l'autorisation de dossier pour le répertoire tomcat.
la structure du répertoire sous /opt/tomcat
est -
bin/
conf/
lib/
logs/
temp/
webapps/
work/
Quelles sont les meilleures pratiques dans la situation ci-dessus - Autorisation d'accès la plus appropriée à l'utilisateur? Pour le moment, j'ai changé l'autorisation de 777 en applications Web et journaux.
Merci
+s
défini l'ID utilisateur / groupe? La page de manuel indique que+t
c'est un peu collant.La
Non-Tomcat settings
section du guide de sécurité de Tomcat fournit des informations utiles sur ce sujet. Vois ici:la source
Vous devez suivre le principe du moindre privilège . Le serveur (probablement
www-data
, mais vous devrez vérifier) doit pouvoir lire la plupart des fichiers (disons tous) et écrire uniquement dans les journaux. Les développeurs Web sont autorisés à écrire où ils en ont besoin. Définissez le bit collant sur les répertoires afin que seul le propriétaire d'un fichier puisse le supprimer.En pratique, vous devez créer un groupe (par exemple
webdev
) et y ajouter tous les développeurs et le serveur (usermod -aG webdev <user>
ou enusermod -A webdev <user>
fonction de votre saveur Linux).chown
tous les fichiers et répertoires à l'utilisateur du serveur Web, chmod tous les répertoires à 500 et tous les fichiers à 400 (sauf dans lesbin
cas où les exécutables doivent également être 500).Accordez des autorisations d'écriture
/opt/tomcat
au groupe (ce serait 570) et définissez le bit collant de sorte qu'il ne puisse supprimer que les fichiers qu'il possède (chmod 1570). Accordez au serveur l'autorisation d'écriture sur les journaux et les autorisations de lecture aux développeurs (0740 pour le dossier, 0640 pour les fichiers, le bit collant n'est probablement pas nécessaire, et ne l'accordez jamais à un fichier, uniquement aux dossiers, car il a un signification différente (exécuter avec les autorisations du propriétaire lorsque le fichier est exécutable)).Ensuite, vous devrez accorder des autorisations d'écriture (1570)
webdev
sur certains répertoires. Vous aurez besoin d'essais et d'erreurs ici, et cela pourrait dépendre de l'application. Ces dossiers doivent être 1570, tandis que d'autres peuvent être 0500).Les développeurs devront accorder un accès en lecture sur leurs fichiers au groupe afin que le serveur puisse les lire (c'est 640), et également exécuter sur les répertoires (c'est 750).
la source
Je pense que la réponse acceptée de @ intropedro est bonne. Il vaut la peine de souligner que l'utilisation d'un programme d'installation de package peut économiser beaucoup de maux de tête - au moins pour Tomcat 7 sur Ubuntu,
apt-get install tomcat7
un ensemble de répertoires d'installation plus "standard" est:/etc/tomcat7
pour les fichiers de configuration,/var/lib/tomcat7
pour les bibliothèques principales, et/usr/share/tomcat7
pour les ressources partagées.Toutes les autorisations sont correctement configurées avec le principe du moindre privilège, de sorte que l'ajout d'utilisateurs au groupe
tomcat7
est suffisant pour permettre le déploiement. De plus, le serveur tomcat est configuré comme un service qui peut être démarré et arrêté comme d'autres (par exemplesudo service tomcat start
ou alternativement/etc/init.d/tomcat start
). Tomcat démarre automatiquement au redémarrage et il existe une commande "redémarrer". Je suis sûr qu'il existe un package yum équivalent pour les utilisateurs de RHEL / CentOS. (Et oui, il existe un programme d'installation homebrew pour les installations OSX locales).Si vous rencontrez des problèmes, il existe un bon utilitaire
/usr/share/bin
appeléconfigtest.sh
qui signale les autorisations ou autres erreurs. Remarque, il existe un bogue ouvert qui suggère d'ajouter des liens symboliques .Nous utilisons toujours Ubuntu
trusty
(14.04); pour ceux qui exécutent des versions plus récentes, je pense qu'il y a un repo apt-get Tomcat 8.la source