Проблеми з дозволом на tomcat


9

Я встановив Tomcat 7, слідуючи керівництву Ubuntu . Сервер працює і дає мені "Це працює!" сторінку на http://localhost:8080/.

Тепер я хочу налаштувати власний веб-сайт за допомогою Netbeans. Я створив новий веб-проект із Java EE 6 та Tomcat 7. Користувач у /var/lib/tomcat7/conf/tomcat-users.xmlфайлі належним чином налаштований.

Коли я запускаю проект, все здається нормальним, але коли я відкриваю браузер, він відображає помилку 500 .

  • Вихід Tomcat згадує помилки дозволу при спробі доступу tomcat7/logsта
  • У журналах IDE намагається отримати доступ tomcat7/conf.

Дозволи на файли:

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

Я не розумію, чому не можете отримати доступ до файлів, ви можете бачити, що користувач та група tomcat7мають дозволи на файли. Чи є користувач для JVM, який потребує привілеїв над файлами?

Я також спробував змінити права власності на файли, як згадувалося тут, але це зовсім не змінюється.


У /etc/default/tomcat7файлі є:

TOMCAT7_USER=tomcat7
TOMCAT7_GROUP=tomcat7

Тож я думаю, що він працює як tomcat7користувач.


Я додав свого користувача до tomcat7групи:

sudo usermod -aG tomcat7 $USER

А потім перезапустили машину, але проблема зберігається.


Чи працює tomcat як користувач tomcat7?
муру

Це було занадто довго , так як я використав кота, але 2 речі відбуваються зі мною: чи не ви повинні бути в групі tomcat7 , щоб дозволити програмі отримати доступ до журналу? А також, схоже, він дійсно хоче отримати доступ до тимчасового файлу /var/lib/tomcat7/temp; це існує? Це може бути та сама проблема з дозволом. Можливо, вам просто потрібно додати себе до групи tomcat7.
Марті Фрід

Крім того, вам потрібно буде зробити групу файлів підручною для використання моєї ідеї. І є більше інформації тут , що може допомогти.
Марті Фрід

Здається, користувач (людина або програма), який працює з tomcat7, не має дозволу на доступ / var / lib / tomcat7 /, а особливо папку журналів.
MickyInTheSky

Відповіді:


9

Я помітив тут дві проблеми.

Мені виділялися два рядки в журналі помилок:

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

і:

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

Зробивши трохи діагнозу з Луціо , я зрозумів, що tomcat-users.xmlфайл не належить Tomcat, а натомість root. Змініть дозволи на відповідні, виконавши команду:

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

Також створіть папку /var/lib/tomcat7/tempз дозволами tomcat, наприклад:

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

Нарешті, виправлення журналів слід здійснити, /var/lib/tomcat7/logsперебуваючи у власності tomcat7користувача / групи. Також /var/log/tomcat7/слід належати групі tomcat7користувача AND.


Для мене зміни дозволів на tomcat-user.xmlфайл було достатньо. Робити те ж саме для журналів не вийшло, але програма все одно працює :-)
Lucio
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.