Qual será a maneira recomendada para garantir que uma instância do Tomcat7 esteja sendo executada como o usuário tomcat7 (ou qualquer outro)?
Suponho que eu possa modificar tomcat7-instance/bin/startup.sh
e tomcat7-instance/bin/shutdown.sh
e adicionar 'su tomcat7' no topo.
No Tomcat6, acho que era a variável de ambiente TOMCAT6_USER
.
Respostas:
A maneira mais comum é instalar o
tomcat7
pacote padrãoapt-get
e iniciá-lo usando:O usuário e o grupo padrão estão configurados
/etc/default/tomcat7
como você pode ver neste trecho:fonte
/etc/default/tomcat7
?EDIT: Por favor, leia os comentários abaixo! Esta solução pode não ser aplicável a todas as situações.
A resposta aceita é ótima, mas desde que eu executei o Tomcat 7 no Ubuntu 14.04, havia algumas coisas adicionais que eu precisava fazer para que tudo funcionasse:
/etc/default/tomcat7
. Depois de alterar o usuário e o grupo, não será mais possível interromper um serviço usando o usuário antigo.Alterar o usuário e o grupo no arquivo
/etc/default/tomcat7
Você precisa alterar a propriedade da pasta
/var/log/tomcat7
e de todos os seus arquivos. Observe que é uma vantagem manter o grupo adm para que todos os usuários adm possam ler os logs.sudo chown -R newuser:adm /var/log/tomcat7
Alterar a propriedade da pasta
/var/lib/tomcat7/webapps
sudo chown -R newuser:newgroup /var/lib/tomcat7/webapps
Se estiver executando na porta 80/443 no Ubuntu 14.04, você precisará alterar a propriedade dos arquivos authbind:
sudo chown newuser /etc/authbind/byport/80
sudo chown newuser /etc/authbind/byport/443
Alterar a propriedade da pasta de trabalho
sudo chown newuser:adm /var/cache/tomcat7
sudo chown -R newuser:newgroup /var/cache/tomcat7/Catalina
Tornar os arquivos de configuração legíveis. Aqui você tem duas opções: Adicione seu novo usuário ao grupo tomcat7:
sudo usermod -a -G tomcat7 newuser
... ou altere a propriedade dos arquivos de configuração:
sudo chown -R :newgroup /var/lib/tomcat7/conf/*
Se você tiver outros arquivos que seus aplicativos da web estão acessando, como arquivos de configuração de arquivos de log etc., também será necessário alterar a propriedade desses arquivos.
EDIT 2: Após a atualização para o tomcat 8 e Ubuntu 18.04, outro problema apareceu ao executar o tomcat como um usuário diferente. No script,
/etc/init.d/tomcat8
a linha a seguir parece alterar a pasta inicial do usuário do tomcat, mas o resultado não é o que você deseja se estiver usando um usuário diferente.Ao remover ou comentar esta linha, é possível evitar a alteração da pasta pessoal para o novo usuário do tomcat.
fonte