Como definir umask padrão para o servlet webdav do Tomcat?

Como definir umask padrão para o servlet webdav do Tomcat?

O título diz tudo. Preciso do servlet webdav do Tomcat para criar arquivos com direitos rw-rw-r--, mas ele continua criando-os como rw-r--r--. Tentei configurar umask em/etc/profile, mas não ajudou (embora novos arquivos criados manualmente tenham as configurações de permissão desejadas). De acordo com /etc/passwd o usuário que executa o Tomcat possui /etc/false como shell e não possui bashrc em seu diretório inicial. O sistema operacional host é o Debian.

Responder1

Embora isso seja completamente um hack, abra Tomcat/bin/startup.sh e defina 'umask 0002' nele. Você também pode fazer isso em catalina.sh, você entendeu - você pode até encontrar exatamente onde o java é iniciado em catalina.sh (procure por "catalina.out") e colocá-lo diretamente acima desse bloco lógico para garantir que seja eficaz quando o java é liberado em sua CPU pobre.

Responder2

Você pode criar um arquivo de ambiente para o Tomcat:

Onde /usr/shared/tomcat8/bin8 é a versão apropriada do Tomcat, crie o arquivo setenv.sh contendo:

#!/bin/bash umask 0002

Responder3

Eu uso scripts personalizados para iniciar e parar o Tomcat, a partir dos quais defino variáveis ​​antes de chamar os scripts padrão.

Algo assim:


#!/bin/sh

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

exportar JAVA_HOME CATALINA_HOME CATALINA_BASE JAVA_OPTS LD_LIBRARY_PATH UMASK

$CATALINA_HOME/bin/startup.sh &

sair $?

.................

A variável UMASK faz o trabalho que você procura.

Espero que isto ajude

informação relacionada