Eu tenho uma caixa Linux sendo compartilhada por vários desenvolvedores. Eles querem implantar seus arquivos de guerra no apache tomcat, que em local compartilhado (/ opt / tomcat).
Como eles não têm acesso ao sudo, preciso alterar a permissão da pasta para o diretório tomcat.
estrutura de diretórios em /opt/tomcat
is -
bin/
conf/
lib/
logs/
temp/
webapps/
work/
Quais são as melhores práticas na situação acima - permissão de acesso mais adequada ao usuário? Por enquanto, mudei a permissão para 777 para aplicativos e logs da web.
obrigado
+s
definido o ID do usuário / grupo? A página de manual diz que+t
é um pouco complicado.A
Non-Tomcat settings
seção do howto de segurança do Tomcat fornece informações úteis sobre este tópico. Veja aqui:fonte
Você precisa seguir o princípio do menor privilégio . O servidor (provavelmente
www-data
, mas você precisará verificar) precisa poder ler a maioria dos arquivos (digamos todos) e gravar apenas nos logs. Os desenvolvedores da Web podem escrever onde precisam. Defina a parte adesiva nos diretórios para que somente o proprietário de um arquivo possa excluí-lo.Na prática, você precisa criar um grupo (por exemplo
webdev
) e adicionar todos os desenvolvedores e o servidor a ele (usermod -aG webdev <user>
ouusermod -A webdev <user>
dependendo do seu sabor Linux).chown
todos os arquivos e diretórios para o usuário do servidor da web, chmod todos os diretórios para 500 e todos os arquivos para 400 (excetobin
onde os executáveis também precisam ser 500).Conceda permissões de gravação
/opt/tomcat
ao grupo (que seria 570) e defina o bit adesivo para que eles possam remover apenas os arquivos que possuem (chmod 1570). Conceda ao servidor permissão de gravação nos logs e permissões de leitura para os desenvolvedores (0740 para a pasta, 0640 para os arquivos, o bit adesivo provavelmente não é necessário e nunca conceda a um arquivo, apenas as pastas, pois possui um significado diferente (execute com as permissões do proprietário quando o arquivo for executável)).Você precisará conceder permissões de gravação (1570) para
webdev
alguns dos diretórios. Você precisará de algumas tentativas e erros aqui e pode ser dependente do aplicativo. Essas pastas devem ser 1570, enquanto outras podem ser 0500).Os desenvolvedores precisarão conceder acesso de leitura em seus arquivos ao grupo para que o servidor possa lê-los (que é 640) e também execute nos diretórios (que são 750).
fonte
Acho que a resposta aceita da @ intropedro é boa. Vale ressaltar que o uso de um instalador de pacotes pode economizar muitas dores de cabeça - pelo menos para o Tomcat 7 no Ubuntu
apt-get install tomcat7
produz um conjunto de diretórios de instalação mais "padrão":/etc/tomcat7
para arquivos de configuração,/var/lib/tomcat7
para bibliotecas principais e/usr/share/tomcat7
para recursos compartilhados.Todas as permissões são configuradas corretamente com o princípio do menor privilégio, de forma que adicionar usuários ao grupo
tomcat7
seja suficiente para permitir a implantação. Além disso, o servidor tomcat é configurado como um serviço que pode ser iniciado e parado como outros (por exemplo,sudo service tomcat start
ou alternativamente/etc/init.d/tomcat start
). O Tomcat inicia na reinicialização automaticamente e há um comando "restart". Tenho certeza de que há um pacote yum equivalente para usuários do RHEL / CentOS. (E sim, há um instalador de homebrew para instalações locais do OSX).Se você estiver tendo problemas, é
/usr/share/bin
chamado um utilitário interessanteconfigtest.sh
que informa se há permissões ou outros erros. Observe que há um erro aberto que sugere adicionar alguns links simbólicos .Ainda estamos executando o Ubuntu
trusty
(14.04); para aqueles que executam versões mais recentes, acredito que exista um repositório Tomcat 8 apt-get.fonte