Problemas de permissão com o tomcat

9

Instalei o Tomcat 7 seguindo o guia do Ubuntu . O servidor está funcionando e me dá o "Funciona!" página em http://localhost:8080/.

Agora eu quero configurar meu próprio aplicativo da web usando o Netbeans. Gerei um novo projeto da Web com Java EE 6 e Tomcat 7. O usuário está no /var/lib/tomcat7/conf/tomcat-users.xmlarquivo configurado corretamente.

Quando executo o projeto, tudo parece ok, mas quando abro o navegador, ele exibe um erro 500 .

Permissões de arquivos:

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

Não entendo por que não é possível acessar os arquivos. Você pode ver que o usuário e o grupo tomcat7têm permissões para os arquivos. Existe um usuário para a JVM que precisa de privilégios sobre os arquivos?

Também tentei alterar a propriedade dos arquivos, conforme mencionado aqui, mas não muda nada.


O /etc/default/tomcat7arquivo possui:

TOMCAT7_USER=tomcat7
TOMCAT7_GROUP=tomcat7

Então, acho que está sendo executado como tomcat7usuário.


Adicionei meu usuário ao tomcat7grupo:

sudo usermod -aG tomcat7 $USER

E, em seguida, reiniciou a máquina, mas o problema persiste.

Lucio
fonte
O tomcat está sendo executado como usuário do tomcat7?
Muru
Faz muito tempo desde que usei o tomcat, mas duas coisas me ocorrem: você não precisa estar no grupo tomcat7 para permitir que o programa acesse o log? E também, parece que realmente deseja acessar um arquivo temporário /var/lib/tomcat7/temp; isso existe? Pode ser o mesmo problema de permissão. Talvez você só precise se adicionar ao grupo tomcat7.
Marty Fried
Além disso, você precisaria tornar o grupo de arquivos gravável para usar minha ideia. E há mais informações aqui que podem ajudar.
26814 Marty Fried
Parece que o usuário (humano ou aplicativo) que executa o tomcat7 não tem permissão para acessar / var / lib / tomcat7 / e, especialmente, a pasta logs.
MickyInTheSky 27/08/14

Respostas:

9

Eu notei dois problemas aqui.

Duas linhas no log de erros se destacaram para mim:

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

e:

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

Fazendo um diagnóstico com o Lucio , descobri que o tomcat-users.xmlarquivo não era de propriedade do Tomcat, mas sim root. Mude as permissões para as corretas executando o comando:

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

Além disso, crie a pasta /var/lib/tomcat7/tempcom permissões de tomcat, da seguinte maneira:

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

Por fim, a correção dos logs deve ser feita /var/lib/tomcat7/logspertencendo ao tomcat7usuário / grupo. Também /var/log/tomcat7/deve pertencer ao tomcat7usuário AND group.

Kaz Wolfe
fonte
Para mim, alterar as permissões no tomcat-user.xmlarquivo foi suficiente. Fazendo o mesmo para os logs não funcionou, mas o aplicativo é executado de qualquer maneira :-)
Lucio