Alterar Permissão de Pastas Windows

Tenho um servidor e meu sitema cria uma pasta para cada usuario que é cadastrado e eu queria que essa pasta pessoal fosse alterada a permissão para que só o dono da pasta alterassem esses dados.
Resumindo como faço para alterar via código a permissão de uma pasta de um usuario do servidor.

Você precisa chamar um utilitário do Windows chamado “cacls”.

Digite “cacls /?” em um Prompt de Comando, e veja os parâmetros necessários.

Para chamar o tal utilitário, você pode usar Runtime.exec.

Apenas curiosidade. Não existe nada que permita você conversar com o SO, algo que permita chamar as API Win32 (nesse caso)? Ao invés de usar Runtime.exec para executar programas do SO.

As APIs Win32 / Win64 que são chamadas pelo CACLS são bem difíceis de usar, mesmo em um programa C ou C++, portanto, mesmo que você usasse o JNA ( https://jna.dev.java.net ) para acessar as tais APIs, você teria um trabalho desgraçado.

Além disso, elas variam de versão para versão do Windows, e há um monte de sutilezas para chamá-las.

É mais fácil e mais garantido usar o CACLS.

O trabalho seria desgraçado por ser uma API Win32/64? Em Linux existe isso?

Em Linux é bem mais simples porque você só tem os comandos chown / chgrp / chmod para alterar adequadamente as permissões. As permissões no Linux (e no Unix tradicional) são infinitamente mais simples que no Windows - no Windows elas são tão complicadas que os sistemas normais simplesmente acabam não usando permissões.
Se quiser, em Unix (e acho que em algumas distribuições do Linux), há versões do Unix que têm esquemas de permissões de arquivos bem complicadas, como é o caso do Solaris e do AIX, onde opcionalmente você pode atribuir permissões bem mais complexas.

Eu disse que dá bastante trabalho, porque é trabalhoso mesmo. Por exemplo, digamos que você precise editar uma ACL (Access Control List) e adicionar algumas permissões a determinados arquivos, remover outras permissões, e que essas permissões possam ou não ser herdadas nas pastas. A quantidade de APIs que deve ser chamada para efetuar tal proeza é bastante grande e desanimadora.

Ah sim, desculpe, em linux você chamaria comandos como chown etc, com relação a isso tranquilo.
Eu falava sobre evitar usar Runtime.exec(). Digamos, alguma biblioteca para Java (ou até mesmo para outra linguagem, a título de curiosidade) que me forneceria métodos diretos para o que eu quero, como por exemplo alterar essas permissões. Isso existe?

É uma boa pergunta. Mas será que valeria a pena? Como eu disse, o fonte do CACLS varia de versão para versão do Windows porque as APIs mudam um pouco. Imagine o esforço de manutenção para criar algo que seja remotamente equivalente a ele, e que mal seria usado. Eu prefiro chamar o CACLS via Runtime.exec mesmo.

Sim, é possível que não valesse a pena. Pelo menos para mim, a frequência de uso do Runtime.exec já é muito baixa, coitado do cara que teria feito o projeto hehe.