Fiz uma aplicação WEB que faz uso do sistema de arquivos para colocar arquivos e imagem para downloads e exibição respectivamente.
No Linux não está funcionado porque o Linux é mais restritivo quanto ao uso do sistema de arquivo.
Neste caso o que devo fazer?
Como definir as permissões no Linux para permitir minha aplicação fazer uso do sistema de arquivo. (Sem deixar brechas na segurança) ?
Obrigado.
Vá até a pasta WebContent pelo terminal. Exemplo:
cd /diretorio/outroDiretorio/aplicacaoWeb/WebContent
Depois, mude as permissões necessárias:
sudo chmod 664 -R * .
E permita que as pastas sejam acessadas:
sudo chmod a+x WEB-INF META-INF .
Provavelmente será necessária a senha de root.
Obrigado Marcos pela resposta
Isto não representa um furo na segurança?
Como esta pasta ta no contexto (dentro do diretorio da aplicacao)
toda vez que eu fizer um deploy terei que mudar a permissão?
[quote=idev4web]Obrigado Marcos pela resposta
Isto não representa um furo na segurança?
Como esta pasta ta no contexto (dentro do diretorio da aplicacao)
toda vez que eu fizer um deploy terei que mudar a permissão?
[/quote]
Sim, toda vez que fizer um deploy vai ter que mudar a permissão, ajasaco. =Z
Pelo que entendi, o problema básico é que seu appserver (tomcat,jboss,glassfish ou o que for) roda sob determinado usuário, que não é o mesmo que o seu. Quando seu código, que roda sob este outro usuário, tenta escrever em um diretório que é seu, ocorrerá erro de permissão, portanto.
O que acho mais razoável é simplesmente passar o “ownership” do diretório para o usuário do appserver, mas isto significa que vc. perderá acesso ao mesmo - o que IMO, é o CORRETO. Ambiente de produção com acesso liberado para desenvolvedores é receita certa de problemas.
Como alternativa, vc. pode solicitar ao administrador que crie um esquema de sincronização de um diretório seu para o de deploy, que rode a cada hora, p.ex, ou sob demanda (em resposta a um e-mail para um endereço mágico, pex).