Давайте начнем с: chmod 777
отлично подходит для тестирования, но абсолютно не подходит для реального мира, и вам не следует привыкать к этому параметру.Вместо того, чтобы правильно установить владельца / группу, перед тем как дать мировым разрешениям на запись.
Редактировать: Подобный вопрос только что появился в списке рассылки Tomcat, и Эммануэль Бур указал, что Debian Tomcat помещен в песочницу systemd.Прочитайте / usr / share / doc / tomcat9 / README.Debian , который содержит этот абзац:
Tomcat изолирован от песочницы systemd и имеет доступ только на запись в следующие каталоги:
- / var / lib / tomcat9 / conf / Catalina (фактически / etc / tomcat9 / Catalina)
- / var / lib / tomcat9 / logs (фактически / var / log / tomcat9)
- / var / lib / tomcat9 / webapps
/ var / lib / tomcat9 / work (собственно / var / cache / tomcat9)
Если доступ для записи вдругие каталоги требуются, настройки сервиса должны быть переопределены.Это делается путем создания файла override.conf в /etc/systemd/system/tomcat9.service.d/, содержащего:
[Service] ReadWritePaths = / путь / к / каталогу /
Служба должна быть перезапущена после этого с помощью:
systemctl daemon-reload systemctl restart tomcat9
Конец редактирования, продолжая с перехода, который не 'не решает проблему OP, но должен оставаться в:
Если - все проверено - Tomcat должен иметь доступ на запись в этот каталог, но не имеет, сообщение об ошибке указывает мне напредположение: может ли быть так, что
- Tomcat работает как root?
- Каталог монтируется через NFS?
Конфигурация по умолчанию для NFS:у этого root нет никаких прав на эту внешнюю файловую систему (или у него не было разрешения на запись? это память древней истории)
Если это условие соответствует тому, что вы используете, вам следует прекратить запуск Tomcat от имени rootи скорее руэто как непривилегированный пользователь.Затем вы можете установить разрешения для рассматриваемого каталога, чтобы он мог быть записан вашим пользователем tomcat и читался nginx, и все готово.
Запуск Tomcat от имени root - это путь к катастрофе: вы не хотите, чтобы процесс, доступный из Интернета, запускался с правами root.
Если эти условия не соответствуют вашей конфигурации: уточните конфигурацию.Я по-прежнему поддерживаю это описание для тех, кто может позже найти этот вопрос / ответ.