Permissão negada ao adotar o aplicativo web Tomcat 8 no Amaon EC2

5

Não consigo encontrar como posso obter permissão de gravação e leitura na pasta tomcat.

Eu segui o tutorial da DigitalOcean sobre como configurar Tomcat . A única coisa que fiz diferente foi usar o Java 8 em vez de 7, mas não acho que isso esteja causando o problema.

Quando eu faço login no gerenciador de aplicativos web tomcat e faço o upload da guerra, recebo o seguinte erro:

  

FALHA - Falha na Implantação do Upload, Exceção: java.io.FileNotFoundException: /opt/tomcat/webapps/SimpleServlet.war (Permissão negada)

Quando eu uso o Filezilla para me conectar ao EC2 e quero soltar o arquivo na pasta webapps:

  

Erro: /opt/tomcat/webapps/SimpleServlet.war: aberto para gravação: permissão negada
  Erro: falha na transferência de arquivos

A saída de ls -la /opt/tomcat/webapps é:

total 28
drwxr-xr-x  7 root root 4096 Nov 20 09:19 .
drwxr-xr-x  9 root root 4096 Nov 28 16:34 ..
drwxr-xr-x 14 root root 4096 Nov 28 16:34 docs
drwxr-xr-x  6 root root 4096 Nov 28 16:34 examples
drwxr-xr-x  5 root root 4096 Nov 28 16:34 host-manager
drwxr-xr-x  5 root root 4096 Nov 28 16:34 manager
drwxr-xr-x  3 root root 4096 Nov 28 16:34 ROOT

mas esta é a estrutura de pastas que pode ser vista no FileZilla

No tutorial, segui este passo:

  

Em seguida, crie um novo usuário do tomcat. Tornaremos esse usuário um membro do grupo tomcat, com um diretório inicial de / opt / tomcat (onde instalaremos o Tomcat) e com um shell de / bin / false (para que ninguém possa efetuar login na conta):

sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat

Este poderia ser o problema?

    
por Greg 28.11.2015 / 19:40

1 resposta

8

/opt/tomcat é declarado como o diretório inicial do usuário tomcat , mas pertence ao usuário root (com o usuário tomcat não tendo permissões de gravação).

Limpando o tutorial, especialmente a seção de permissões, tenho sentimentos mistos em relação à qualidade do tutorial. Ele fala sobre "dar o acesso de gravação do usuário do tomcat ao diretório conf" enquanto altera as permissões da pasta. Não ter permissões de gravação para o usuário do servidor de aplicativos da Web para o software executado parece razoável para uso em produção (um atacante que explora o processo tomcat não poderá modificar o software), isso também impedirá a implantação de aplicativos no gerenciador de aplicativos web tomcat .

Eu gostaria de configurar tomcat como o grupo webapps :

chgrp -R tomcat /opt/tomcat/webapps

e quando você precisar implantar novos aplicativos, adicione permissões de gravação para esse grupo:

chmod -R g+w /opt/tomcat/webapps

que você remove novamente após a implantação:

chmod -R g-w /opt/tomcat/webapps

(você precisará executar esses comandos com privilégios de superusuário, então prefixo sudo conforme necessário). Isso também se encaixaria no Guia de considerações de segurança do Tomcat .

    
por Jens Erat 28.11.2015 / 22:48