[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Komisches Rechteproblem mit Tomcat 9



Ich habe mein aktuelles Problem schon im debianforum.de geschildert (https://debianforum.de/forum/viewtopic.php?f=8&t=173439), aber leider noch keine Lösung bekommen. Ich weiß auch immer noch nicht weiter. Ich kopiere hierhin mal, was ich im Debianforum schon geschrieben habe in der Hoffnung, dass hier doch noch jemand eine zündende Idee hat. ;-)

System: Debian 9 mit openjdk 11 und Tomcat 9 (aus Backports-Repository)

Tomcat 9 startet nicht, weil er das Verzeichnis /var/lib/tomcat9/policy nicht anlegen kann. Das finde ich sehr seltsam, denn:

- Der Tomcat ist so konfiguriert, dass er unter dem User tomcat:tomcat läuft (steht so in der Unit-Datei):

root@lnx-64-debian-9-8:/var/log/tomcat9 # cat /lib/systemd/system/tomcat9.service
#
# Systemd unit file for Apache Tomcat
#

[Unit]
Description=Apache Tomcat 9 Web Application Server
Documentation=https://tomcat.apache.org/tomcat-9.0-doc/index.html
After=network.target

[Service]

# Configuration
Environment="CATALINA_HOME=/usr/share/tomcat9"
Environment="CATALINA_BASE=/var/lib/tomcat9"
Environment="CATALINA_TMPDIR=/tmp"
Environment="JAVA_OPTS=-Djava.awt.headless=true"
EnvironmentFile=-/etc/default/tomcat9

# Lifecycle
Type=simple
ExecStartPre=+/usr/libexec/tomcat9/tomcat-update-policy.sh
ExecStart=/bin/sh /usr/libexec/tomcat9/tomcat-start.sh
SuccessExitStatus=143
Restart=on-abort

# Logging
SyslogIdentifier=tomcat9

# Security
User=tomcat
Group=tomcat
PrivateTmp=yes
AmbientCapabilities=CAP_NET_BIND_SERVICE
NoNewPrivileges=true
LogsDirectory=tomcat9
LogsDirectoryMode=750
CacheDirectory=tomcat9
CacheDirectoryMode=750
ProtectSystem=strict
ReadWritePaths=/etc/tomcat9/Catalina/
ReadWritePaths=/var/lib/tomcat9/webapps/

[Install]
WantedBy=multi-user.target

- Das Verzeichnis /var/lib/tomcat9 gehört tomcat:tomcat:

root@lnx-64-debian-9-8:/var/log/tomcat9 # ls -al /var/lib/tomcat9
insgesamt 16
drwxr-xr-x 4 tomcat tomcat 4096 Mai 31 14:24 .
drwxr-xr-x 27 root root 4096 Mai 31 14:24 ..
lrwxrwxrwx 1 root root 12 Feb 26 09:17 conf -> /etc/tomcat9
drwxr-xr-x 2 tomcat tomcat 4096 Feb 26 09:17 lib
lrwxrwxrwx 1 root root 17 Feb 26 09:17 logs -> ../../log/tomcat9
drwxrwxr-x 3 tomcat tomcat 4096 Mai 31 13:57 webapps
lrwxrwxrwx 1 root root 19 Feb 26 09:17 work -> ../../cache/tomcat9

- ich kann von Hand das Verzeichnis als tomcat-User problemlos anlegen:

root@lnx-64-debian-9-8:/var/lib/tomcat9 # sudo -u tomcat mkdir policy
root@lnx-64-debian-9-8:/var/lib/tomcat9 # ls -al
insgesamt 20
drwxr-xr-x 5 tomcat tomcat 4096 Mai 31 14:48 .
drwxr-xr-x 27 root root 4096 Mai 31 14:24 ..
lrwxrwxrwx 1 root root 12 Feb 26 09:17 conf -> /etc/tomcat9
drwxr-xr-x 2 tomcat tomcat 4096 Feb 26 09:17 lib
lrwxrwxrwx 1 root root 17 Feb 26 09:17 logs -> ../../log/tomcat9
drwxr-xr-x 2 tomcat tomcat 4096 Mai 31 14:48 policy
drwxrwxr-x 3 tomcat tomcat 4096 Mai 31 13:57 webapps
lrwxrwxrwx 1 root root 19 Feb 26 09:17 work -> ../../cache/tomcat9

Wenn ich starte, nachdem ich das Verzeichnis von Hand angelegt habe, kommt die Fehlermeldung, dass er das Verzeichnis nicht löschen kann:

root@lnx-64-debian-9-8:/var/lib/tomcat9 # systemctl start tomcat9
Job for tomcat9.service failed because the control process exited with error code.
See "systemctl status tomcat9.service" and "journalctl -xe" for details.
root@lnx-64-debian-9-8:/var/lib/tomcat9 # systemctl status tomcat9
● tomcat9.service - Apache Tomcat 9 Web Application Server
Loaded: loaded (/lib/systemd/system/tomcat9.service; enabled; vendor preset: enabled) Active: failed (Result: exit-code) since Fri 2019-05-31 14:50:56 CEST; 8s ago
Docs: https://tomcat.apache.org/tomcat-9.0-doc/index.html
Process: 2389 ExecStartPre=/usr/libexec/tomcat9/tomcat-update-policy.sh (code=exited, status=1/FAILURE)

Mai 31 14:50:56 lnx-64-debian-9-8 systemd[1]: Starting Apache Tomcat 9 Web Application Server... Mai 31 14:50:56 lnx-64-debian-9-8 tomcat9[2389]: rm: das Entfernen von '/var/lib/tomcat9/policy' ist nicht möglich: Das Dateisystem ist nur lesbar Mai 31 14:50:56 lnx-64-debian-9-8 systemd[1]: tomcat9.service: Control process exited, code=exited status=1 Mai 31 14:50:56 lnx-64-debian-9-8 systemd[1]: Failed to start Apache Tomcat 9 Web Application Server. Mai 31 14:50:56 lnx-64-debian-9-8 systemd[1]: tomcat9.service: Unit entered failed state. Mai 31 14:50:56 lnx-64-debian-9-8 systemd[1]: tomcat9.service: Failed with result 'exit-code'.

Was ich noch komisch finde: Die Datei /var/log/tomcat9/catalina.out gehörte ursprünglich root:adm und war nur für root schreibbar. Trotzdem konnte Tomcat in die Datei schreiben. Ich habe sie dann tomcat:tomcat gegeben und die Einträge landeten genauso darin!

root@lnx-64-debian-9-8:/var/lib/tomcat9 # mount | grep var
/dev/mapper/system-var on /var type ext4 (rw,relatime,data=ordered)

root@lnx-64-debian-9-8:/var/lib/tomcat9 # cat /var/log/tomcat9/catalina.out
[2019-05-31 13:57:08] [info] mkdir: das Verzeichnis „/var/lib/tomcat9/policy“ kann nicht angelegt werden: Das Dateisystem ist nur lesbar [2019-05-31 13:58:59] [info] mkdir: das Verzeichnis „/var/lib/tomcat9/policy“ kann nicht angelegt werden: Das Dateisystem ist nur lesbar [2019-05-31 14:05:49] [info] mkdir: das Verzeichnis „/var/lib/tomcat9/policy“ kann nicht angelegt werden: Das Dateisystem ist nur lesbar [2019-05-31 14:09:15] [info] rm: das Entfernen von '/var/lib/tomcat9/policy' ist nicht möglich: Das Dateisystem ist nur lesbar [2019-05-31 14:35:49] [info] mkdir: das Verzeichnis „/var/lib/tomcat9/policy“ kann nicht angelegt werden: Das Dateisystem ist nur lesbar [2019-05-31 14:50:56] [info] rm: das Entfernen von '/var/lib/tomcat9/policy' ist nicht möglich: Das Dateisystem ist nur lesbar

Wer hat denn dazu eine Idee? Ich habe heute mal das Logging für die catalina.out auf "DEBUG" gesetzt, aber da kam dann auch nicht mehr!

Grüße
Burkhard


Reply to: