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 theuAccount=
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
SetLocal EnableDelayedExpansion - icacls
- Para
- Substrings variáveis