PHuV
Banned
- Registriert
- März 2005
- Beiträge
- 14.219
Ich habe hier gerade ein ziemliches Problem und hoffe auf einen Hinweis von den Linux-Gurus hier.
Aktuell habe ich ein Problem, daß eine Anwendung unter Linux Centos 7.7 mit einem bestimmten Benutzer laufen soll. Er wird mit systemd eingerichtet, so daß im Falle eines Reboots die Services entsprechend sauber gestoppt und neu gestartet werden. Nun wird irgendwann mal der Root-Zugriff weggenommen, und der Benutzer selbst soll die Services stoppen und starten können. Man könnte es über Einträge in /etc/sudoers und und /etc/sudoers.d lösen, das möchte ich aber vermeiden.
Für die Verdeutlichung des Problems nehme ich mal einen üblichen Tomcat-Server, siehe
https://linuxize.com/post/how-to-install-tomcat-9-on-centos-7/
Der Tomcat hat einen eigenen Benutzer tomcat, und der kann über
und bedient sie korrekt als tomcat Benutzer mit
Aktuell hab ich mich immer so beholfen, daß ich eben die Prozesse grundsätzlich immer per root/sudo starte und stoppe. Wenn man aber kein root mehr hat, ist es ein Problem. Wie löse ich das nun, so daß beides gleich läuft? Ich nehme mal an, daß der systemd sich die ProzessID anders merkt und erzeugt, und dann von dem Benutzer gestarteten Prozess nichts mehr mitbekommt. Der Benutzer kommt vermutlich wiederum nicht an die systemd-ProzessID und dann dann auch nichts machen, obwohl der Prozess unter ihm läuft.
Eine Lösung habe ich schon probiert, indem ich in den Scripten wie im Systemd-Script eine PID-Datei übergebe
Es brachte aber leider keinen Erfolg.
Aktuell habe ich ein Problem, daß eine Anwendung unter Linux Centos 7.7 mit einem bestimmten Benutzer laufen soll. Er wird mit systemd eingerichtet, so daß im Falle eines Reboots die Services entsprechend sauber gestoppt und neu gestartet werden. Nun wird irgendwann mal der Root-Zugriff weggenommen, und der Benutzer selbst soll die Services stoppen und starten können. Man könnte es über Einträge in /etc/sudoers und und /etc/sudoers.d lösen, das möchte ich aber vermeiden.
Für die Verdeutlichung des Problems nehme ich mal einen üblichen Tomcat-Server, siehe
https://linuxize.com/post/how-to-install-tomcat-9-on-centos-7/
Der Tomcat hat einen eigenen Benutzer tomcat, und der kann über
- /opt/tomcat/latest/bin/startup.sh
- /opt/tomcat/latest/bin/shutdown.sh
- /etc/systemd/system/tomcat.service
Code:
ExecStart=/opt/tomcat/latest/bin/startup.sh
ExecStop=/opt/tomcat/latest/bin/shutdown.sh
- systemctl start|restart|status|stop tomcat.service
Aktuell hab ich mich immer so beholfen, daß ich eben die Prozesse grundsätzlich immer per root/sudo starte und stoppe. Wenn man aber kein root mehr hat, ist es ein Problem. Wie löse ich das nun, so daß beides gleich läuft? Ich nehme mal an, daß der systemd sich die ProzessID anders merkt und erzeugt, und dann von dem Benutzer gestarteten Prozess nichts mehr mitbekommt. Der Benutzer kommt vermutlich wiederum nicht an die systemd-ProzessID und dann dann auch nichts machen, obwohl der Prozess unter ihm läuft.
Eine Lösung habe ich schon probiert, indem ich in den Scripten wie im Systemd-Script eine PID-Datei übergebe
Code:
PIDFile=/opt/tomcat/latest/logs/tomcat.pid