Каков будет рекомендуемый способ убедиться, что экземпляр Tomcat7 работает от имени пользователя tomcat7 (или любого другого)?
Я полагаю, что я могу изменить tomcat7-instance/bin/startup.sh
и tomcat7-instance/bin/shutdown.sh
добавить 'su tomcat7' вверху.
В Tomcat6 я думаю, что это была переменная окружения TOMCAT6_USER
.
Ответы:
Наиболее распространенным способом является установка стандартного
tomcat7
пакета с помощьюapt-get
и запуск его с помощью:Пользователь и группа по умолчанию настроены так,
/etc/default/tomcat7
как вы можете видеть в этом фрагменте:источник
/etc/default/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, но результат будет не тем, что вы хотите, если вы используете другого пользователя.Удаляя или комментируя эту строку, вы можете избежать изменения домашней папки для нового пользователя tomcat.
источник