РЕДАКТУЙТЕ: Будь ласка, читайте коментарі нижче! Це рішення може застосовуватися не у всіх ситуаціях.
Прийнята відповідь чудова, але оскільки я запускаю Tomcat 7 на Ubuntu 14.04, мені потрібно було зробити кілька додаткових речей, щоб все запустити:
- Перш ніж редагувати файл, вам потрібно зупинити службу tomcat
/etc/default/tomcat7
. Щойно ви зміните користувача та групу, більше не можна буде зупинити послугу за допомогою старого користувача.
Змініть користувача та групу у файлі /etc/default/tomcat7
Вам потрібно змінити право власності на папку /var/log/tomcat7
та всі її файли. Зверніть увагу, що перевагу зберігати групу адміністраторів, щоб усі користувачі адміністратора могли читати журнали.
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/*
Якщо у вас є інші файли, до яких доступ до ваших веб-додатків, такі як файли конфігураційних файлів тощо, тоді вам також потрібно змінити право власності на ці файли.
- Тепер все має бути готовим знову запустити послугу з новим користувачем.
EDIT 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.