Назад | Перейти на главную страницу

Запустите Apache Tomcat от имени пользователя «tomcat»

Я хочу запустить Apache Tomcat на Ubuntu 18 в качестве (созданного мной) пользователя tomcat.

Я не использую Tomcat по умолчанию для Ubuntu, а вместо этого напрямую скачал пакет tar.gz с домашней страницы Tomcat.

Я установил это в /opt.

По соображениям безопасности я хочу запустить tomcat пользователем tomcat которые я создал следующим образом:

sudo useradd -r -s /bin/false tomcat

Теперь я хотел бы запустить tomcat, используя следующий сценарий:

#!/bin/bash
/bin/su -s /bin/bash -c "/opt/tomcat/bin/startup.sh" tomcat

Когда я запускаю этот скрипт, я получаю следующий результат:

ubuntu@server-8x32:/opt/tomcat/bin$ ./start-tomcat.sh 
Password: 

Я не указывал пароль, и поскольку этот сценарий также вызывается из другого автоматически выполняемого сценария, я не могу каждый раз вводить пароль.

Итак, мой вопрос: как мне запустить Apache Tomcat как пользователь tomcat без запроса пароля?

Создать tomcat группа и этот файл в /etc/systemd/system/tomcat.service с содержанием:

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

[Service]
Type=forking


Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'

ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/bin/kill -15 $MAINPID

User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target

Запустите службу с

systemctl start tomcat

Это запустит службу как tomcat.