Proteção de arquivos através do Java

12 respostas
khaue_viana_

Pessoal estou criando um arquivo XML que não pode ser excluído, essa criação é através do JAVA utilizando a IDE Netbeans. Gostaria de saber se existe alguma maneira de proteger esse arquivo, ou seja se através do código do java eu pudesse tirar a permisão de editar e excluir esse arquivo. É meio complicado, mas espero que alguem já tenha passado por isso.

Abraços.

12 Respostas

juno.rr

Dê uma olhada na classe java.io.File, especificamente em em setReadOnly() e setWritable() http://download.oracle.com/javase/6/docs/api/java/io/File.html.

khaue_viana_

Ok

Vou dar uma olhada aki

khaue_viana_

Não consegui aki, será que alguem tem alguma exemplo?

M

Se ele não pode ser editado nem removido, não deve ficar sob poder do usuário.

Não há como proteger completamente um arquivo. O máximo que dá pra fazer é marcá-lo como somente leitura (que evita alterações, mas não a exclusão).

Ainda sim, mesmo que usando a opção de somente leitura, o usuário pode ir nas propriedades do arquivo e marcá-lo com permissão de escrita.

khaue_viana_

Então alguem tem alguma idéia pra eu poder proteger esse arquivo?

Agradeço a ajuda!

khaue_viana_

Mais alguem pra me ajudar?

M

Eu considero este um problema insolucionável. Talvez seja necessária outra abordagem (manter o arquivo em um servidor remoto, ou algo assim).

Aliás, você não disse pra que o arquivo serve, nem o que sua aplicação faz.

khaue_viana_

É um arquivo que guarda as informações da conexão, como o servidor, porta, nome do banco e tal.

javer

Eu utilizo uma abordagem semelhante a sua, porém no meu caso o sistema verifica se o arquivo está lá e se as informações estão no arquivo corretamente, caso não esteja o sistema manda o usuário entrar em contato comigo e vamos ver o que aconteceu.

Eu uso um arquivo de propriedades, com propriedade e valor, exemplo:

servidor.banco.dados = 192.168.0.1 usuario.banco.dados = FULANO senha.banco.dados = 8eb8c59b18f6418c8fc9d27803
Não considero que seja uma forma ideal para se fazer isso, mas está funcionando sem problemas há 6 anos.

L

Caso este arquivo esteja armazenado em um servidor unix e derivados utilize

chmod u=rwx,g=rwx,o=rwx nome_diretório
onde:
u-> permissões que serão aplicadas para o dono do arquivo
g-> permissões que serão aplicadas para o grupo do dono do arquivo
o-> permissões que serão aplicadas a todos o outros usuários
r-> permissão de leitura
w-> permissão de escrita
x-> permissão de execução

Existe outras opções e so pesquisar.

lucasportela

Se for windows pesquise sobre o comando ICACLS

e uso um método com

try {
			Process exec = Runtime.getRuntime().exec("icacls arquivo /deny User1:(d,wdac)");
		} catch (IOException e) {
			e.printStackTrace();
		}
khaue_viana_

Agradeço as dicas do pessoal, e em relação a linux ou windows, provavelmente rodará em windows. Mas num queria engessar o projeto, vou continuar tentando alguma coisa que pelo menos dê uma proteção. Porém caso o arquivo seja excluído ou confiugurado errado o máximo que pode acontecer é não conectar com o banco :lol:

Mas ai já é outro problema…

Abraço pessoal, agradeço as dicas de todos!

Criado 28 de dezembro de 2010
Ultima resposta 30 de dez. de 2010
Respostas 12
Participantes 6