¿Cuál será la forma recomendada de garantizar que una instancia de Tomcat7 se ejecute como usuario de tomcat7 (o cualquier otro)?
Supongo que puedo modificar tomcat7-instance/bin/startup.sh
y tomcat7-instance/bin/shutdown.sh
agregar 'su tomcat7' en la parte superior.
En Tomcat6 creo que fue la variable de entorno TOMCAT6_USER
.
Respuestas:
La forma más común es instalar el
tomcat7
paquete estándar conapt-get
y comenzarlo usando:El usuario y el grupo predeterminados están configurados
/etc/default/tomcat7
como puede ver en este extracto:fuente
/etc/default/tomcat7
?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:
/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.
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.Al eliminar o comentar esta línea, puede evitar que se modifique la carpeta de inicio para el nuevo usuario de tomcat.
fuente