EDITAR: ¡Lea los comentarios a continuación! Es posible que esta solución no sea aplicable a todas las situaciones.
La respuesta aceptada es excelente, pero como ejecuté Tomcat 7 en Ubuntu 14.04, había algunas cosas adicionales que necesitaba hacer para que todo funcionara:
- Debe detener el servicio tomcat antes de editar el archivo
/etc/default/tomcat7
. Una vez que cambie el usuario y el grupo, ya no será posible detener un servicio con el usuario anterior.
Cambiar el usuario y el grupo en el archivo /etc/default/tomcat7
Debe cambiar la propiedad de la carpeta /var/log/tomcat7
y todos sus archivos. Tenga en cuenta que es una ventaja mantener el grupo adm para que todos los usuarios adm puedan leer los registros.
sudo chown -R newuser:adm /var/log/tomcat7
Cambiar la propiedad de la carpeta /var/lib/tomcat7/webapps
sudo chown -R newuser:newgroup /var/lib/tomcat7/webapps
Si se ejecuta en el puerto 80/443 en Ubuntu 14.04, debe cambiar la propiedad de los archivos authbind:
sudo chown newuser /etc/authbind/byport/80
sudo chown newuser /etc/authbind/byport/443
Cambiar la propiedad de la carpeta de trabajo
sudo chown newuser:adm /var/cache/tomcat7
sudo chown -R newuser:newgroup /var/cache/tomcat7/Catalina
Haga que los archivos de configuración sean legibles. Aquí tiene dos opciones: agregar su nuevo usuario al grupo tomcat7 por:
sudo usermod -a -G tomcat7 newuser
... o cambiar la propiedad de los archivos de configuración:
sudo chown -R :newgroup /var/lib/tomcat7/conf/*
Si tiene otros archivos a los que acceden sus aplicaciones web, como archivos de configuración de archivos de registro, etc., también debe cambiar la propiedad de esos archivos.
- Ahora, todo debería estar listo para iniciar el servicio nuevamente con el nuevo usuario.
EDIT 2: después de actualizar a tomcat 8 y Ubuntu 18.04, apareció otro problema al ejecutar tomcat como un usuario diferente. En la secuencia de comandos, /etc/init.d/tomcat8
la siguiente línea parece alterar la carpeta de inicio del usuario de tomcat, pero el resultado no es lo que desea si está utilizando un usuario diferente.
usermod --home /var/lib/tomcat8 $TOMCAT8_USER > /dev/null 2>&1 || true
Al eliminar o comentar esta línea, puede evitar que se modifique la carpeta de inicio para el nuevo usuario de tomcat.