Você precisa entrar nas permissões avançadas no setup.exe. Remova todos os direitos para os usuários / grupos (removendo perms herdados se necessário), então vá para as permissões avançadas e adicione os usuários / grupos apenas com a permissão "Travers folder / execute file".
Isso permite que os usuários executem o setup.exe, mas eles não puderam abri-lo em, e. um editor hexadecimal e veja seu conteúdo.
JR
Eu tive outro olhar sobre isso seguindo os comentários de Evan. Acontece que estou certo (claro :-), mas que Evan também está correto; mais ou menos.
Aqui estão os detalhes. Eu criei uma pasta C: \ test e deixei as ACLs nos padrões. A ACL na pasta não parece importar. Nesta pasta eu copiei alguns applets do Windows como Paint e Notepad. Eu também copiei um aplicativo do Windows ultrasimple que eu mesmo escrevi. A fonte do aplicativo ultrasimple é:
#include <windows.h>
int PASCAL WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
MessageBox(NULL, "Hello world\n", "Hello world\n", 0);
return 0;
}
que eu tenho certeza que você concorda é bem simples. Agora eu editei as permissões em todos os arquivos. Eu desabilitei a herança, removi todas as permissões e configurei as ACLs para conter apenas uma entrada, concedendo a todos a permissão "Atravessar pasta / Executar arquivo".
Agora, se eu arrastar qualquer um dos arquivos para o Bloco de notas, recebo imediatamente um erro de acesso negado. Se eu tentar copiar qualquer um dos arquivos em outra pasta, recebo um erro de acesso negado. Isso mostra que o acesso de leitura aos arquivos foi negado.
Agora, clico duas vezes no meu aplicativo simples e ele é iniciado. Apenas por completude eu copiei em outro aplicativo bem maior que estou trabalhando, e depois de configurar as permissões isso também funcionou. Este é o ponto que eu tive quando eu postei pela primeira vez, e é por isso que eu estava confiante de que minha resposta estava correta.
Mas, quando tento executar mspaint.exe ou notepad.exe eles não são executados. Em vez disso, recebo um erro de acesso negado. Este é o ponto em que estou relutantemente inclinado a admitir que Evan pode ter razão: -)
Minha interpretação é que o Notepad e o MSPaint possuem recursos que o Windows tenta carregar quando são iniciados. Isso requer acesso de leitura ao arquivo, para ler o recurso e porque o acesso de leitura foi negado, a tentativa de iniciar o arquivo falha. Como meu aplicativo não tem recursos, o Windows consegue iniciá-lo com bastante alegria. Eu imagino que isso se aplicaria a qualquer um, exceto ao mais simples dos aplicativos do Windows, então, embora minha postagem original tenha sido tecnicamente correta, na prática, apenas a configuração da permissão de execução não permitirá que você execute nada de útil. Você também precisará de acesso de leitura.