Problemi di autorizzazione con tomcat


9

Ho installato Tomcat 7 seguendo la guida di Ubuntu . Il server funziona e mi dà il messaggio "Funziona!" pagina su http://localhost:8080/.

Ora voglio configurare la mia webapp usando Netbeans. Ho generato un nuovo progetto Web con Java EE 6 e Tomcat 7. L'utente si trova sul /var/lib/tomcat7/conf/tomcat-users.xmlfile correttamente configurato.

Quando eseguo il progetto sembra tutto a posto, ma quando apro il browser viene visualizzato un errore 500 .

  • L' output di Tomcat menziona errori di autorizzazione nel tentativo di accedere tomcat7/logse
  • I registri IDE tentano di accedere tomcat7/conf.

Autorizzazioni file:

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

Non capisco perché non riesco ad accedere ai file, puoi vedere che l'utente e il gruppo tomcat7hanno le autorizzazioni per i file. Esiste un utente per JVM che necessita di privilegi sui file?

Ho anche provato a cambiare la proprietà dei file come indicato qui, ma non cambia affatto.


Il /etc/default/tomcat7file ha:

TOMCAT7_USER=tomcat7
TOMCAT7_GROUP=tomcat7

Quindi immagino che funzioni come tomcat7utente.


Ho aggiunto il mio utente al tomcat7gruppo:

sudo usermod -aG tomcat7 $USER

E quindi riavviato il computer, ma il problema persiste.


Tomcat è in esecuzione come utente Tomcat7?
muru,

È passato troppo tempo da quando ho usato Tomcat, ma mi vengono in mente 2 cose: non è necessario essere nel gruppo Tomcat7 per consentire al programma di accedere al registro? Inoltre, sembra che voglia davvero accedere a un file temporaneo in /var/lib/tomcat7/temp; esiste? Potrebbe essere lo stesso problema di autorizzazione. Forse devi solo aggiungerti al gruppo tomcat7.
Marty Fried,

Inoltre, è necessario rendere scrivibile il gruppo di file per utilizzare la mia idea. E ci sono ulteriori informazioni qui che potrebbero aiutare.
Marty Fried,

Sembra che l'utente (umano o l'applicazione) che esegue tomcat7 non disponga dell'autorizzazione per accedere a / var / lib / tomcat7 / e in particolare alla cartella dei registri.
MickyInTheSky,

Risposte:


9

Ho notato due problemi qui.

Mi sono distinte due righe nel registro degli errori:

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

e:

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

Facendo un po 'di diagnosi con Lucio , ho capito che il tomcat-users.xmlfile non era di proprietà di Tomcat, ma invece root. Modificare le autorizzazioni con quelle appropriate eseguendo il comando:

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

Inoltre, crea la cartella /var/lib/tomcat7/tempcon autorizzazioni Tomcat, in questo modo:

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

Infine, la correzione dei registri dovrebbe essere effettuata diventando di /var/lib/tomcat7/logsproprietà tomcat7dell'utente / gruppo. L' /var/log/tomcat7/dovrebbe anche essere di proprietà tomcat7dell'utente e del gruppo.


Per me, cambiare le autorizzazioni sul tomcat-user.xmlfile è stato sufficiente. Fare lo stesso per i registri non ha funzionato ma l'applicazione è comunque in esecuzione :-)
Lucio
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.