Especificar permissões de leitura no lançamento de um processo

4 respostas
P

Oi,

eu tenho um programa que lança novos processos usando a classe ProcessBuilder. Ie, durante a execução do programa, ele lança novos processos (são mesmo processos e não threads) que irão executar também. Eu gostaria que, quando lanço um processo, definir que o processo só tem permissões de leitura a uma certa directoria. É possível fazer-se isso em java?

Obrigado

4 Respostas

S

Opa,

não consegui entender a seguinte parte:

P

O que quero dizer é que tenho uma directoria com informação importante (chamemos /temp) que todos os processos lançados dentro da aplicação apenas podem ler os ficheiros dentro do /temp e nunca actualizá-los, ou escrever novos ficheiros. Os processos lançados dentro da aplicação são classes construídas por qq utilizador, e eu tenho que proteger esta directoria contra acessos indevidos.

Eu gostava de atribuir apenas permissões de leitura à directoria /temp para todos os processos lançados pela minha aplicação. Eu queria que esta atribuição de permissões fosse feita dentro de classes java e não através da ferramenta java policy.

Isso é possível?

E

A permissão de acesso a arquivos costuma ser feita por usuário, não por aplicação. Dependendo do sistema operacional você pode fazer com que uma determinada aplicação rode sob o login de outro usuário (algo semelhante ao “runas” do Windows ou ao “sudo” do Linux). Pesquise a documentação do seu sistema operacional.

P

Acho que não estão a responder à minha pergunta. Vou tentar explicar-me melhor.

Imaginemos que temos a minha plataforma que lança processos. Apenas existem 2 tipos de processos: processo admin (AdminClass) e processo user (UserClass). Os processos do tipo admin, têm acesso de escrita à directoria /temp. O outro tipo de processo apenas tem acesso de leitura. Estes processos conseguem ser diferenciados pela classe e ambos os processos são lançados com o objecto ProcessBuilder.

Eu gostava de definir permissões de acesso conforme o tipo de processo que está a ser lançado. Como faço isso?

Espero ter explicado melhor.

Criado 7 de julho de 2011
Ultima resposta 7 de jul. de 2011
Respostas 4
Participantes 3