Wie lege ich die Standard-Umask für das Tomcat-WebDAV-Servlet fest?

Wie lege ich die Standard-Umask für das Tomcat-WebDAV-Servlet fest?

Der Titel sagt alles. Ich brauche Tomcats WebDAV-Servlet, um Dateien mit rw-rw-r-- Rechten zu erstellen, aber es erstellt sie immer als rw-r--r--. Ich habe versucht, umask in /etc/profile einzurichten, aber das hat nicht geholfen (obwohl manuell erstellte neue Dateien die gewünschten Berechtigungseinstellungen haben). Laut /etc/passwd hat der Benutzer, der Tomcat ausführt, /etc/false als Shell und kein bashrc in seinem Home-Verzeichnis. Das Host-Betriebssystem ist Debian.

Antwort1

Obwohl dies ein kompletter Hack ist, öffnen Sie tomcat/bin/startup.sh und setzen Sie darin „umask 0002“. Sie können dies auch in catalina.sh tun, Sie verstehen schon – Sie könnten sogar genau herausfinden, wo Java in catalina.sh gestartet wird (suchen Sie nach „catalina.out“) und es direkt über diesem Logikblock platzieren, um sicherzustellen, dass es wirksam ist, wenn Java auf Ihre arme CPU losgelassen wird.

Antwort2

Sie können eine Umgebungsdatei für Tomcat erstellen:

Erstellen Sie in der Datei setenv.sh, in /usr/shared/tomcat8/binder 8 Ihre entsprechende Tomcat-Version ist, den folgenden Inhalt:

#!/bin/bash umask 0002

Antwort3

Ich verwende benutzerdefinierte Skripte zum Starten und Stoppen von Tomcat, in denen ich Variablen festlege, bevor ich die Standardskripte aufrufe.

Etwas wie das:


#!/bin/sh

CATALINA_HOME=/usr/local/tomcat

CATALINA_BASE=/web/tomcat/catalina-base/meineApp

JAVA_HOME=/usr/local/java

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CATALINA_BASE/lib

JAVA_OPTS="-Xms1024m -Xmx1024m"

UMASK=0002

exportieren JAVA_HOME CATALINA_HOME CATALINA_BASE JAVA_OPTS LD_LIBRARY_PATH UMASK

$CATALINA_HOME/bin/startup.sh &

beenden $?

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

Die Variable UMASK erledigt die gewünschte Arbeit.

Hoffe das hilft

verwandte Informationen