У меня есть веб - приложение , развернутое с помощью Tomcat , который позволяет загружать файлы в директории для files Эти файлы загружены Tomcat с владельцем tomcat:tomcat и разрешениями 640 . Мне нужно вести группу tomcat потому что это нужно другим пользователям для администрирования.

Что касается загрузки, у меня есть Nginx, который предоставляет файлы для пользователей.

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

  • Я не могу добавить www-data в группу tomcat по соображениям безопасности.
  • Я не могу заменить группу tomee на www-data , потому что мне нужна группа tomee и я не могу позволить tomee создавать ВСЕ файлы в группе www-data (например, tomee будет создавать журналы под tomee:www-data , что нежелательно - только загрузки в любом случае могут иметь это)
  • Я не могу позволить others иметь какие-либо разрешения на файлы по соображениям безопасности. В любом случае я не могу изменить маску Tomcat 640 по умолчанию, потому что (плохой дизайн Tomcat?) это повлияет на КАЖДЫЙ файл, который создает Tomcat.
  • Я мог бы использовать chmod g+s но это, похоже, не влияет на файлы рекурсивно (Tomcat создает также каталоги, в которые он затем загружает файл)

Как я могу решить эту проблему?

1 ответ1

0

Я думаю, что я решил это, но нужно больше тестировать, прежде чем принимать решение.

  • sudo apt install acl (на основе Ubuntu)
  • sudo chown tomcat:www-data files
  • sudo chmod g+s files
  • sudo setfacl -Rm d:g:www-data:r files

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .