Я хочу запустить 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
.