Permissões de arquivo / pasta de compartilhamento / segurança

1

Estou tentando executar um executável (.exe) da LAN sem permitir que os usuários acessem o conteúdo da própria pasta da LAN. por exemplo,

1) O usuário clica em um link em seu e-mail para um executável em um caminho de pasta, por exemplo, I: \ Folder A \ setup.exe

2) Ao clicar no link, o instalador é executado

3) Se o usuário tentar acessar a pasta, ou seja, I: \ Folder A \, ele não poderá ver o conteúdo da pasta por um prompt ou por não mostrar nada lá.

Alguém sabe como isso pode ser feito? Essencialmente, eu só quero ter certeza de que os usuários tenham permissões de execução somente para o setup.exe. Isso é para permissões de NTFS.

    
por Saurabh Barjatiya 16.07.2009 / 07:07

5 respostas

2

Se você realmente quiser fazer isso, faça o seguinte (assumindo que "Usuários autenticados" devem ter direitos para executar o SETUP.EXE):

  • Verifique se a pasta não nomeia "Usuários autenticados" como tendo permissões. Em caso afirmativo, remova-os (removendo a permissão definida diretamente nessa pasta ou quebrando a hierarquia de herança e removendo as permissões atribuídas).

  • No próprio arquivo SETUP.EXE, defina a permissão "Usuários autenticados - Ler e executar".

Os usuários poderão executar o arquivo se souberem o caminho do arquivo, mas não poderão acessar a pasta.

Eu prevejo que o seu programa SETUP precisará acessar outros arquivos nessa pasta, e não funcionará porque o usuário que está executando o SETUP não terá acesso aos outros arquivos. (Por que os usuários estão autorizados a instalar software em seus computadores, afinal? Eles estão usando seus computadores no dia-a-dia com contas 'Administrador' ... vergonha ...)

    
por 16.07.2009 / 14:22
0

Eu não acho que seja possível. Se você tiver que ir na pasta, a permissão de execução será suficiente. Mas, para ler arquivos, é necessária permissão de leitura. Para executar setup.exe, a pessoa deve ser capaz de ler o setup.exe (código executável) que requer permissão de leitura na pasta.

    
por 16.07.2009 / 07:17
0

Outra possibilidade seria atendê-lo a partir de um compartilhamento oculto, como um compartilhamento administrativo. Estes são denotados pelo sinal $ após o nome do compartilhamento e não aparecem na LAN por padrão. Em outras palavras, você tem que saber que está lá para usá-lo. Um pouco de segurança pela obscuridade, mas pode servir ao seu propósito.

    
por 16.07.2009 / 12:42
0

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.

    
por 16.07.2009 / 09:21
0

Talvez eu seja louco, mas você não pode simplesmente remover o "List Folder Contents" para a pasta dessas contas?

    
por 21.07.2009 / 07:34