
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/bin
der 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