2013-12-05 3 views
10

У меня есть машина для разработки, которую я ранее установил Tomcat, и просто запустил ее как тот же пользователь, который работал над dev. Я сбросил символическую ссылку в $CATALINA_HOME/webapps в каталог, в который я построил WAR, и каждый раз, когда я обновлял сборку tomcat, следил за символической ссылкой и извлекал новую WAR. Никогда никаких проблем.Tomcat не разбирается .war символических ссылок

Но при подготовке к переносу на производственную машину я создал нового пользователя с ограниченными разрешениями и установил tomcat для запуска в качестве этого пользователя, как и по соображениям безопасности.

Теперь tomcat больше не следит за символической ссылкой, даже когда я предоставляю пользователю права на файл WAR и устанавливаю разрешения для 777. Я не вижу ничего в catalina.out или ежедневного журнала о том, что происходит, или.

Это всего лишь еще один шаг к циклу тестирования, чтобы скопировать WAR, так что это не слишком важно, но мне все еще интересно, что происходит.

Права доступа к каталогу WebApps:

drwxr-xr-x 3 tomcat tomcat 4096 Dec 11 14:34 webapps 

права доступа к каталогу, я в здании, чтобы:

drwxrwxr-x 11 tomcat tomcat 4096 Dec 11 14:34 target 

Права доступа на WAR файл мавена производит:

-rw-rw-r-- 1 tomcat tomcat 16822856 Dec 11 14:34 [webapp].war 

Права доступа на символической ссылке я создаю ему:

lrwxrwxrwx 1 tomcat tomcat 60 Dec 11 17:33 [webapp].war -> [webapp directory]/[webapp].war 
+0

Каковы разрешения в папке webapps? –

+0

drwxr-xr-x 3 tomcat tomcat 4096 дек 11 12:30 webapps - so 755 – Glazius

+0

Понятно, что это проблема разрешения.Можете ли вы предоставить более подробную информацию о разрешениях в папках (работа, ваша символическая ссылка, bin, conf и т. Д.) И пользовательская группа пользователя, созданная? –

ответ

7

Я подозреваю, что у пользователя tomcat пользователь не имеет обходных прав на одну из вложенных папок, содержащих настоящий WAR-файл. Как вы сказали, у него есть разрешение на tomcat папок, чтобы он мог запустить Tomcat, и он может видеть, что символическая ссылка существует.

Может быть, процесс сборки создает файл WAR внутри личной папки, скажем, домашнюю папку пользовательского glazius, и это предотвращает Tomcat пользователя от чтения файла, даже если файл имеет правильные разрешения прилагается.

Вы можете легко использовать:

ls -Cf 

внутри вашей WebApps папки, чтобы проверить цвет символьной ссылки: если он красный кот пользователь не может достигнуть файла, если он синий он уже должен работать без какие-то проблемы.

Если это красный цвет, убедитесь, что у каждой папки вашего WAR-файла есть разрешение обхода (x) на другая группа. Если, например, путь /home/glazius/workspace/target/webapp.war, выполните следующие команды:

chmod o+x /home/glazius 
chmod o+x /home/glazius/workspace 
chmod o+x /home/glazius/workspace/target 
+0

Ах! Да, это так. Мой домашний каталог был доступен только для меня, и именно здесь все было построено первоначально. При добавлении разрешений прохождения все исправлено. – Glazius

1

Дайте новое разрешение пользователя на запись $CATALINA_HOME/work.

+0

drwxr-xr-x 3 tomcat tomcat 4096 Oct 2 20:52 work - уже было – Glazius

+0

Это разрешение на запись только для пользователя 'tomcat'. Вам нужен 'drwxrwxr-x', если новый пользователь находится в группе' tomcat' и 'drwxrwxrwx', если он не находится в группе' tomcat'. –

Смежные вопросы