Отказано в доступе при добавлении веб-приложения Tomcat 8 на Amaon EC2

Я не могу найти, как получить права на запись и чтение в папку tomcat.

Я следовал руководству DigitalOcean по настройке Tomcat. Единственное, что я сделал иначе, это то, что я использовал Java 8 вместо 7, но я не думаю, что это вызывает проблему.

Когда я захожу в менеджер веб-приложений tomcat и загружаю войну, я получаю следующую ошибку:

FAIL - Ошибка развертывания при загрузке, исключение: java.io.FileNotFoundException: /opt/tomcat/webapps/SimpleServlet.war (разрешение отклонено)

Когда я использую Filezilla для подключения к EC2 и хочу поместить файл в папку webapps:

Ошибка: /opt/tomcat/webapps/SimpleServlet.war: открыт для записи: разрешение запрещено
Ошибка: передача файла не удалась

Выход из ls -la /opt/tomcat/webapps является:

total 28
drwxr-xr-x  7 root root 4096 Nov 20 09:19 .
drwxr-xr-x  9 root root 4096 Nov 28 16:34 ..
drwxr-xr-x 14 root root 4096 Nov 28 16:34 docs
drwxr-xr-x  6 root root 4096 Nov 28 16:34 examples
drwxr-xr-x  5 root root 4096 Nov 28 16:34 host-manager
drwxr-xr-x  5 root root 4096 Nov 28 16:34 manager
drwxr-xr-x  3 root root 4096 Nov 28 16:34 ROOT

но это структура папок, которую можно увидеть в FileZilla

Структура файла filezilla ec2

На уроке я следовал этому шагу:

Затем создайте нового пользователя tomcat. Мы сделаем этого пользователя членом группы tomcat с домашним каталогом /opt/tomcat (где мы будем устанавливать Tomcat) и с оболочкой /bin/false (чтобы никто не мог войти в учетную запись):

sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat

Может ли это быть проблемой?

2 ответа

Решение

/opt/tomcat объявлен домашним каталогом tomcat пользователь, но принадлежит root пользователь (с tomcat пользователь не имеет прав на запись).

Чистя учебник, особенно раздел разрешений, я испытываю смешанные чувства к качеству учебника. В нем говорится о "предоставлении пользователю tomcat права на запись в каталог conf" при изменении прав доступа к папке. Отсутствие разрешений на запись для пользователя сервера веб-приложений в запущенное программное обеспечение представляется целесообразным для производственного использования (злоумышленник, использующий процесс tomcat, не сможет изменять программное обеспечение), это также не позволит вам развертывать приложения без использования менеджера веб-приложений tomcat.,

Я бы пошел на настройку tomcat как webapps группа:

chgrp -R tomcat /opt/tomcat/webapps

и когда вам нужно развернуть новые приложения, добавьте разрешения на запись для этой группы:

chmod -R g+w /opt/tomcat/webapps

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

chmod -R g-w /opt/tomcat/webapps

(вам нужно будет запускать эти команды с привилегиями суперпользователя, поэтому используйте префикс sudo по мере необходимости). Это также соответствовало бы рекомендациям Tomcat по безопасности.

Чтобы дать разрешения

бывший. для Tomcat8

$ cd /var/lib$ ls -ld tomcat8

$ sudo chmod -R o+w tomcat8/

Другие вопросы по тегам