Negar excluir o acesso de um usuário ao arquivo, mas permitir que ele execute o acesso

1

Eu quero definir permissões para que um arquivo executável não possa ser excluído ou renomeado, mas pode ser executado.

Quando nego que seja excluído, também não pode ser executado. Por quê?

Existe uma maneira de torná-lo undeletable mas executável? (Estou usando permissões avançadas para configurá-lo para permitir a execução e a leitura do arquivo).

    
por I am not Here 30.06.2018 / 16:40

1 resposta

1

Evitar a exclusão ou renomeação de arquivos, mas permitir acesso de Leitura e Execução

Teste icacls com a sintaxe abaixo do arquivo que você deseja bloquear e com o nome de usuário (ou nome do grupo de segurança ) para o qual será aplicado. Há notas de comentário no script acima de cada comando anexado com ::: explicando o que cada um faz especificamente para ACL as permissões.

Você deve redefinir as permissões de ACL de volta ao modo como elas foram originalmente definidas inicialmente antes de fazer as alterações feitas antes de executá-las. Depois de concluir, verifique se a conta pode executar o arquivo e depois execute o script abaixo.

Essencialmente isso desativa a herança da ACL para a pasta em que o arquivo executável reside e o próprio arquivo. Em seguida, concede uma leitura e execução explícitas à pasta e ao arquivo executável. Para evitar a renomeação do arquivo, ele nega criar arquivos / gravar dados na pasta em que reside o arquivo executável. Por fim, explicitamente, nega o acesso de exclusão à pasta e ao arquivo executável também.

Script

@ECHO ON
SETLOCAL ENABLEDELAYEDEXPANSION
SET "Exe=C:\Folder\Path\file.exe"
SET "uAccount=Username"
FOR %%a in ("%Exe%") DO SET "eFolder=%%~DPa"
::: This strips the last "\" from the folder the exe resides so icacls can process
SET "eFolder=!eFolder:~0,-1!"

::: Disables ACL inheritence on the folder the exe file resides but copies all ACLs as inherited before removing
ICACLS "!eFolder!" /inheritance:d /grant:r "%uAccount%:(OI)(IO)" /C
::: Remove all granted permission ACLs on only the folder the exe file resides
ICACLS "!eFolder!" /remove:g "%uAccount%" /C
::: Remove all denied permission ACLs on only the folder the exe file resides
ICACLS "!eFolder!" /remove:g "%uAccount%" /C
::: Grants explicit read and execute ACL access on only the folder the exe file resides
ICACLS "!eFolder!" /grant:r "%uAccount%:(RX)" /C
::: Denies delete ACL access on only the folder the exe file resides  
ICACLS "!eFolder!" /deny "%uAccount%":(DE)
::: Denies create files / write data ACL access on only the folder the exe file resides  
ICACLS "!eFolder!" /deny "%uAccount%":(WD)

::: Disables ACL inheritence on the exe file only but copies all ACLs as inherited before removing
ICACLS "%Exe%" /inheritance:d /grant:r "%uAccount%:(OI)(IO)" /C
::: Remove all granted permission ACLs on only the exe file
ICACLS  "%Exe%"  /remove:g "%uAccount%" /C
::: Remove all denied permission ACLs on only the exe file
ICACLS  "%Exe%"  /remove:g "%uAccount%" /C
::: Grants explicit read and execute ACL access only to the exe file
ICACLS "%Exe%" /grant:r "%uAccount%:(RX)" /C
::: Grants an explicit deny of delete ACL access only to the exe file
ICACLS "%Exe%" /deny "%uAccount%":(DE)


PAUSE
EXIT

Note: Change the value of the Exe= variable to be the full explicit path to the executable file you wish to lock down, and the value of the uAccount= variable to be the username (or security group names) of the account (or group) which you wish this to be performed.

Esclarecimento de permissão da ACL da GUI

Pasta o exe reside

Opróprioarquivoexe 

Maisrecursos

por 30.06.2018 / 20:59