Eu tenho medo de que não haja uma boa solução para essa questão, conforme apresentado, em que Permissões de arquivo se vinculam ao próprio objeto de arquivo em NTFS ( na MFT $ ), portanto, qualquer arquivo fornecido tem apenas um conjunto de permissões, mesmo se houver vários links para ele. As permissões nos links são muito limitadas e aplicam-se ao próprio link / junção, não o objeto de destino, com uma exceção: negar a listagem de arquivos em uma junção impedirá que o usuário veja qualquer arquivo na junção.
Em vez disso, recomendo alternar dinamicamente as permissões ou o bit readonly ao iniciar o jogo, dependendo da conta que você pretende usar. Você pode fazer isso criando dois arquivos em lote, que definem o arquivo como gravável ou somente leitura, e depois iniciam o jogo.
a abordagem mais simples seria usar o bit readonly:
Lote 1
#Readonly user
attrib +R c:\path\to\file.ext
c:\path\to\game.exe
Lote 2
#ReadWrite user
attrib -R c:\path\to\file.ext
c:\path\to\game.exe
Alguns executáveis podem tentar desativar o bit somente leitura se tiverem problemas para gravar em um arquivo que desejarem, portanto, se esses arquivos em lote não forem suficientes, tente negar o acesso de gravação do usuário do Windows, usando o cacls . seria algo como:
Lote 1
#Readonly user
CACLS c:\path\to\file.ext /E /P "Username":R
c:\path\to\game.exe
Lote 2
#ReadWrite user
CACLS c:\path\to\file.ext /E /P "Username":F
c:\path\to\game.exe
Então, finalmente, para tornar tudo mais fácil de usar, basta criar atalhos de jogo para cada conta e direcioná-los para o arquivo de lote apropriado.
Como eu disse, é irrelevante que não exista uma solução limpa para esse problema, mas esse é um caso bem marginal, e a tecnologia nunca foi projetada para funcionar como você gostaria. Espero que essa abordagem um tanto hackeada funcione para você.