Запустите Tomcat7 от имени пользователя tomcat7 (или любого другого)

Каков будет рекомендуемый способ убедиться, что экземпляр Tomcat7 работает от имени пользователя tomcat7 (или любого другого)?

Полагаю, что я могу изменить tomcat7-instance/bin/startup.sh и tomcat7-instance/bin/shutdown.sh и добавить 'su tomcat7 'наверху.

В Tomcat6 я думаю, что это была переменная окружения TOMCAT6_USER.

10
задан 6 November 2013 в 04:21

2 ответа

Наиболее распространенный способ - установить стандартный пакет 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
0
ответ дан 6 November 2013 в 04:21

РЕДАКТИРОВАТЬ: Пожалуйста, прочитайте комментарии ниже! Это решение не может быть применимо ко всем ситуациям.

Принятый ответ великолепен, но поскольку я запускаю Tomcat 7 в Ubuntu 14.04, мне нужно было сделать несколько дополнительных вещей, чтобы все заработало:

  1. Вам нужно остановить службу tomcat перед тем, как редактирование файла /etc/default/tomcat7. После того, как вы измените пользователя и группу, больше не будет возможности остановить службу, используя старого пользователя.
  2. Измените пользователя и группу в файле /etc/default/tomcat7

  3. Вам необходимо изменить владельца папки /var/log/tomcat7 и всех ее файлов. Обращаем ваше внимание, что сохранять группу adm - это преимущество, чтобы все пользователи adm могли читать журналы.

    sudo chown -R newuser:adm /var/log/tomcat7

  4. Смена владельца папки /var/lib/tomcat7/webapps

    sudo chown -R newuser:newgroup /var/lib/tomcat7/webapps

  5. Если запущено на порт 80/443 в Ubuntu 14.04, вам нужно изменить владельца файлов authbind:

    sudo chown newuser /etc/authbind/byport/80

    sudo chown newuser /etc/authbind/byport/443

  6. Сменить владельца рабочая папка

    sudo chown newuser:adm /var/cache/tomcat7

    sudo chown -R newuser:newgroup /var/cache/tomcat7/Catalina

  7. Сделать файлы конфигурации доступными для чтения. Здесь у вас есть два варианта: либо добавить нового пользователя в группу tomcat7 с помощью:

    sudo usermod -a -G tomcat7 newuser

    ... или изменить владельца файлов конфигурации:

    sudo chown -R :newgroup /var/lib/tomcat7/conf/*

  8. Если у вас есть другие файлы, к которым обращаются ваши веб-приложения, такие как файлы конфигурации файлов журналов и т. Д., Вам также необходимо изменить владельца этих файлов.

  9. Теперь все должно быть готово снова запустить службу с новым пользователем.

РЕДАКТИРОВАНИЕ 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.

0
ответ дан 6 November 2013 в 04:21

Другие вопросы по тегам:

Похожие вопросы: