Antes do Java 6, não havia suporte para atualização de permissão de arquivo no nível do Java. Você deve implementar seu próprio método nativo ou chamada Runtime.exec()
para executar um comando de nível de sistema operacional, como chmod .
A partir do Java 6, você pode usar File.setReadable()/File.setWritable()/File.setExecutable()
para definir permissões de arquivo. Mas não simula o sistema de arquivos POSIX, que permite definir permissões para diferentes usuários. File.setXXX () só permite definir permissão para o proprietário e todos os outros.
A partir do Java 7, é introduzida a permissão de arquivo POSIX. Você pode definir permissões de arquivo como o que fez nos sistemas * nix. A sintaxe é:
File file = new File("file4.txt");
file.createNewFile();
Set<PosixFilePermission> perms = new HashSet<>();
perms.add(PosixFilePermission.OWNER_READ);
perms.add(PosixFilePermission.OWNER_WRITE);
Files.setPosixFilePermissions(file.toPath(), perms);
Este método só pode ser usado no sistema de arquivos POSIX, isso significa que você não pode chamá-lo no sistema Windows.
Para obter detalhes sobre o gerenciamento de permissões de arquivos, recomendamos que você leia esta postagem .
Files.setPosixFilePermissions(path, PosixFilePermissions.fromString("rwxr-x---"))