it-swarm.com.de

umask für Tomcat8 über Tomcat.service einstellen

Ich versuche, eine benutzerdefinierte umask für eine Tomcat 8-Instanz festzulegen. Ich habe versucht, dies mithilfe der UMask-Direktive in der systemd-Tomcat-Einheit so zu gestalten, wie hier ohne Erfolg.

Ich möchte eine 022-Umask festlegen, da das Entwickler-Unternehmen auf Tomcat/Anwendungsprotokolle zugreifen muss und sich nicht in derselben Gruppe wie der Tomcat-Benutzer befindet.

das verrückte ist, dass der systemd doc sagt:

Steuert die Erstellungsmaske für den Dateimodus. Nimmt einen Zugriffsmodus in Oktal-Notation an. Siehe umask (2) für Details. Standardeinstellung ist 0022.

Die Protokolle (Anwendung/Tomcat) sind jedoch auf 640 eingestellt (nicht die erwarteten 755):

-rw-r----- 1 top top 21416 Feb  1 09:58 catalina.out

Meine Servicedatei:

# Systemd unit file for Tomcat
[Unit]
Description=Apache Tomcat Web Application Container
After=syslog.target network.target

[...]

User=top
Group=top
UMask=0022

[Install]
WantedBy=multi-user.target

Irgendwelche Gedanken dazu?

Vielen Dank

8
Pier

Fügen Sie UMASK als Umgebungsvariable in die Servicedatei von Tomcat ein:

[Service]
...
Environment='UMASK=0022'
...

Die Standardeinstellung von catalina.sh prüft auf $ UMASK der Umgebung:

# Set UMASK unless it has been overridden
 if [ -z "$UMASK" ]; then
  UMASK="0027"
 fi
 umask $UMASK

(Mir scheint, dass UMask von systemd nicht von Tomcat verwendet wird, aber ich bin mir nicht ganz sicher.)

11
mjtecka

Ich denke, dass Sie dies mit systemd erreichen können, indem Sie Folgendes tun: 

~]# mkdir -p /etc/systemd/system/Tomcat.service.d
~]# echo -e "[Service]\nUMask=0022" >/etc/systemd/system/Tomcat.service.d/custom-umask.conf
~]# systemctl daemon-reload
~]# systemctl restart Tomcat

/etc/systemd/system/Tomcat.service.d/umask-user.conf sollte die Standardwerte überschreiben. 

Quelle: https://access.redhat.com/solutions/2220161

P.S: Eine Umask von 0022 würde eine 0644-Berechtigung und ein Verzeichnis 0755 geben.

1
Patrick McMahon

wenn Sie Tomcat mit jsvc als Dämonprozess starten, müssen Sie das Argument -umask in der jsvc-Befehlszeile festlegen

0
Philip