
Название говорит само за себя. Мне нужен сервлет Tomcat webdav для создания файлов с правами rw-rw-r--, но он продолжает создавать их как rw-r--r--. Я пытался настроить umask в /etc/profile, но это не помогло (хотя вручную созданные новые файлы имеют нужные настройки прав). Согласно /etc/passwd, пользователь, который запускает Tomcat, имеет /etc/false в качестве оболочки и не имеет bashrc в своем домашнем каталоге. Хост-ОС — Debian.
решение1
Хотя это полностью хак, откройте tomcat/bin/startup.sh и установите в нем 'umask 0002'. Вы также можете сделать это в catalina.sh, вы поняли идею - вы даже можете найти место, где запускается java в catalina.sh (поиск "catalina.out"), и поместить его прямо над этим логическим блоком, чтобы гарантировать его эффективность, когда java будет запущена на вашем бедном процессоре.
решение2
Вы можете создать файл среды для tomcat:
Где /usr/shared/tomcat8/bin
8 — ваша соответствующая версия tomcat, создайте файл setenv.sh, содержащий:
#!/bin/bash umask 0002
решение3
Я использую пользовательские скрипты для запуска и остановки tomcat, в которых я задаю переменные перед вызовом стандартных скриптов.
Что-то вроде этого:
#!/bin/ш
CATALINA_HOME=/usr/local/tomcat
CATALINA_BASE=/web/tomcat/catalina-base/myapp
JAVA_HOME=/usr/local/java
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CATALINA_BASE/lib
JAVA_OPTS="-Xms1024m -Xmx1024m"
UMASK=0002
экспорт JAVA_HOME CATALINA_HOME CATALINA_BASE JAVA_OPTS LD_LIBRARY_PATH UMASK
$CATALINA_HOME/bin/startup.sh &
выход $?
.................
Переменная UMASK выполняет ту работу, которую вы ищете.
Надеюсь это поможет