Problemas de permisos con tomcat

9

Instalé Tomcat 7 siguiendo la guía de Ubuntu . El servidor funciona y me da el mensaje "¡Funciona!" en la página http://localhost:8080/.

Ahora quiero configurar mi propia aplicación web usando Netbeans. Generé un nuevo proyecto web con Java EE 6 y Tomcat 7. El usuario está en el /var/lib/tomcat7/conf/tomcat-users.xmlarchivo configurado correctamente.

Cuando ejecuto el proyecto, todo parece estar bien, pero cuando abro el navegador muestra un error 500 .

Permisos de archivos:

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

No entiendo por qué no puedo acceder a los archivos, puedes ver que el usuario y el grupo tomcat7tienen permisos para los archivos. ¿Hay un usuario para la JVM que necesita privilegios sobre los archivos?

También intenté cambiar la propiedad de los archivos como se menciona aquí, pero no cambia en absoluto.


El /etc/default/tomcat7archivo tiene:

TOMCAT7_USER=tomcat7
TOMCAT7_GROUP=tomcat7

Entonces supongo que se está ejecutando como tomcat7usuario.


Agregué mi usuario al tomcat7grupo:

sudo usermod -aG tomcat7 $USER

Y luego reinició la máquina, pero el problema persiste.

Lucio
fuente
¿Tomcat se está ejecutando como usuario de tomcat7?
muru
Ha sido demasiado tiempo desde que utiliza Tomcat, pero 2 cosas se me ocurrió: No se necesita estar en el grupo tomcat7 para permitir que el programa para acceder al registro? Y también, parece que realmente quiere acceder a un archivo temporal /var/lib/tomcat7/temp; ¿existe eso? Puede ser el mismo problema de permiso. Tal vez solo necesite agregarse al grupo tomcat7.
Marty Fried
Además, necesitaría hacer que el grupo de archivos se pueda escribir para usar mi idea. Y hay más información aquí que podría ayudar.
Marty Fried
Parece que el usuario (humano o aplicación) que ejecuta tomcat7 no tiene permiso para acceder a / var / lib / tomcat7 / y especialmente a la carpeta de registros.
MickyInTheSky

Respuestas:

9

Noté dos problemas aquí.

Me destacaron dos líneas en el registro de errores:

SEVERE: Cannot find specified temporary folder at /var/lib/tomcat7/temp  

y:

java.io.FileNotFoundException: /var/lib/tomcat7/conf/tomcat-users.xml (Permission denied)

Al hacer un poco de diagnóstico con Lucio , descubrí que el tomcat-users.xmlarchivo no era propiedad de Tomcat, sino que lo hacía root. Cambie los permisos a los correctos ejecutando el comando:

sudo chown tomcat7:tomcat7 /var/lib/tomcat7/conf/tomcat-users.xml

Además, cree la carpeta /var/lib/tomcat7/tempcon permisos de tomcat, así:

sudo mkdir /var/lib/tomcat7/temp && sudo chown -R tomcat7:tomcat7 /var/lib/tomcat7/temp

Finalmente, la fijación de los registros debe hacerse haciendo que /var/lib/tomcat7/logsel tomcat7usuario / grupo sea ​​el propietario . El /var/log/tomcat7/también debe ser propiedad del tomcat7usuario Y grupo.

Kaz Wolfe
fuente
Para mí, cambiar los permisos en el tomcat-user.xmlarchivo fue suficiente. Hacer lo mismo para los registros no funcionó pero la aplicación se está ejecutando de todos modos :-)
Lucio