Каков будет рекомендуемый способ убедиться, что экземпляр Tomcat7 работает от имени пользователя tomcat7 (или любого другого)?
Полагаю, что я могу изменить tomcat7-instance/bin/startup.sh
и tomcat7-instance/bin/shutdown.sh
и добавить 'su tomcat7 'наверху.
В Tomcat6 я думаю, что это была переменная окружения TOMCAT6_USER
.
Наиболее распространенный способ - установить стандартный пакет tomcat7
с помощью apt-get
и запустить его с помощью:
sudo service tomcat7 start
Пользователь и группа по умолчанию настроены в /etc/default/tomcat7
, как вы можете видеть в этом отрывке:
# Run Tomcat as this user ID. Not setting this or leaving it blank will use the
# default of tomcat7.
TOMCAT7_USER=tomcat7
# Run Tomcat as this group ID. Not setting this or leaving it blank will use
# the default of tomcat7.
TOMCAT7_GROUP=tomcat7
РЕДАКТИРОВАТЬ: Пожалуйста, прочитайте комментарии ниже! Это решение не может быть применимо ко всем ситуациям.
Принятый ответ великолепен, но поскольку я запускаю Tomcat 7 в Ubuntu 14.04, мне нужно было сделать несколько дополнительных вещей, чтобы все заработало:
/etc/default/tomcat7
. После того, как вы измените пользователя и группу, больше не будет возможности остановить службу, используя старого пользователя. Измените пользователя и группу в файле /etc/default/tomcat7
Вам необходимо изменить владельца папки /var/log/tomcat7
и всех ее файлов. Обращаем ваше внимание, что сохранять группу adm - это преимущество, чтобы все пользователи adm могли читать журналы.
sudo chown -R newuser:adm /var/log/tomcat7
Смена владельца папки /var/lib/tomcat7/webapps
sudo chown -R newuser:newgroup /var/lib/tomcat7/webapps
Если запущено на порт 80/443 в Ubuntu 14.04, вам нужно изменить владельца файлов authbind:
sudo chown newuser /etc/authbind/byport/80
sudo chown newuser /etc/authbind/byport/443
Сменить владельца рабочая папка
sudo chown newuser:adm /var/cache/tomcat7
sudo chown -R newuser:newgroup /var/cache/tomcat7/Catalina
Сделать файлы конфигурации доступными для чтения. Здесь у вас есть два варианта: либо добавить нового пользователя в группу tomcat7 с помощью:
sudo usermod -a -G tomcat7 newuser
... или изменить владельца файлов конфигурации:
sudo chown -R :newgroup /var/lib/tomcat7/conf/*
Если у вас есть другие файлы, к которым обращаются ваши веб-приложения, такие как файлы конфигурации файлов журналов и т. Д., Вам также необходимо изменить владельца этих файлов.
РЕДАКТИРОВАНИЕ 2: После обновления до tomcat 8 и Ubuntu 18.04 появилась другая проблема при запуске tomcat от имени другого пользователя. В скрипте /etc/init.d/tomcat8
следующая строка, похоже, меняет домашнюю папку пользователя tomcat, но результат не тот, который вы хотите, если вы используете другого пользователя.
usermod --home /var/lib/tomcat8 $TOMCAT8_USER > /dev/null 2>&1 || true
Удалив или закомментировав эту строку, вы можете избежать изменения домашней папки для нового пользователя tomcat.