Como Gerenciar Permissões ACL Usando PowerShell
- Tipos de Permissões NTFS no PowerShell
-
Use o Comando
Get-Acl
para Obter ACL para Pastas e Arquivos no PowerShell -
Use o Comando
Set-Acl
para Definir ACL para Arquivos e Pastas no PowerShell -
Use o Parâmetro
-RemoveAccessRule
para Remover Permissões de Usuário no PowerShell - Desativar ou Ativar Herança de Permissões no PowerShell
-
Use o Método
SetOwner
para Alterar a Propriedade de Arquivo e Pasta no PowerShell

Os administradores de sistema configuram listas de controle de acesso NTFS ACLs
adicionando entradas de controle de acesso ACEs
em servidores de arquivos NTFS para implementar um modelo de privilégio mínimo.
Este artigo aprenderá os diferentes tipos de permissões e como consultar, modificar e remover ACL em arquivos e pastas usando PowerShell.
Tipos de Permissões NTFS no PowerShell
Existem permissões NTFS avançadas e básicas. Por exemplo, você pode definir cada permissão como Negar
ou Permitir
.
Controle Total
: Usuários com essa permissão podem modificar, adicionar, mover e deletar arquivos e diretórios, assim como suas propriedades associadas. Além disso, os usuários com essa permissão podem alterar as configurações de permissões para todos os subdiretórios e arquivos.Modificar
: Usuários com essa permissão podem visualizar e modificar arquivos e propriedades de arquivos, incluindo adicionar e deletar arquivos em um diretório ou propriedades de arquivo a um arquivo.Ler e Executar
: Usuários com essa permissão podem executar arquivos executáveis, incluindo scripts.Ler
: Usuários podem visualizar arquivos, propriedades de arquivo e diretórios com essa permissão.Escrever
: Usuários com essa permissão podem escrever em um arquivo e adicionar arquivos a diretórios.
Aqui está a lista de permissões avançadas:
Navegar na Pasta
ouExecutar Arquivo
: Usuários com essa permissão avançada podem navegar por pastas para alcançar outras pastas ou arquivos, mesmo que não tenham permissões para esses arquivos ou pastas. Usuários com essa permissão avançada também podem executar arquivos executáveis. A permissãoNavegar na Pasta
tem efeito quando o usuário ou grupo não possui o direitoIgnorar Verificação de Navegação
no complemento de Política de Grupo.Listar Pasta
ouLer Dados
: Usuários com essa permissão avançada podem visualizar uma lista de arquivos e subpastas dentro da pasta e o conteúdo dos arquivos.Ler Atributos
: Usuários com essa permissão avançada podem visualizar os atributos de uma pasta ou arquivo, como se está oculto ou somente leitura.Escrever Atributos
: Usuários com essa permissão avançada podem alterar os atributos de um arquivo ou pasta.Ler Atributos Estendidos
: Usuários com essa permissão avançada podem visualizar os atributos estendidos de uma pasta ou arquivo, como permissões e horários de criação e modificação.Escrever Atributos Estendidos
: Usuários com essa permissão avançada podem alterar os atributos estendidos de uma pasta ou arquivo.Criar Arquivos
ouEscrever Dados
: A permissãoCriar Arquivos
permitirá que os usuários criem arquivos dentro da pasta com essa permissão avançada.Essa permissão se aplica apenas a pastas.
A permissãoEscrever Dados
habilitará usuários com essa permissão avançada a modificar o arquivo e sobrescrever o conteúdo existente. Essa permissão se aplica apenas a arquivos.Criar Pastas
ouAdicionar Dados
: A permissãoCriar Pastas
permite que os usuários criem pastas dentro de uma pasta com essa permissão avançada.Essa permissão se aplica apenas a pastas.
A permissãoAdicionar Dados
permitirá que usuários com essa permissão avançada façam alterações ao final do arquivo, mas não podem alterar, sobrescrever ou deletar dados existentes. Essa permissão se aplica apenas a arquivos.Deletar
: Usuários com essa permissão avançada podem deletar a pasta ou arquivo. Se os usuários não tiverem a permissãoDeletar
em uma pasta ou arquivo, ainda poderão deletar um objeto se tiverem a permissãoDeletar Subpastas e Arquivos
na pasta pai.Ler Permissões
: Usuários com essa permissão avançada podem ler as permissões de uma pasta ou arquivo, comoControle Total
,Ler
eEscrever
.Alterar Permissões
: Usuários com essa permissão avançada podem alterar as permissões de um arquivo ou pasta.Tomar Propriedade
: Usuários com essa permissão avançada podem assumir a propriedade do arquivo ou pasta. O proprietário do arquivo ou pasta pode sempre alterar suas permissões, independentemente de quaisquer permissões existentes que protejam o arquivo ou pasta.Sincronizar
: Usuários com essa permissão avançada podem usar o objeto para sincronização. Essa permissão permitirá que uma thread espere até que o objeto esteja no estado sinalizado. Essa permissão não é apresentada no Editor de ACL.
Podemos encontrar todas as informações sobre essas permissões de usuário executando o seguinte script PowerShell abaixo:
[System.Enum]::GetNames([System.Security.AccessControl.FileSystemRights])
As permissões NTFS podem ser explícitas ou herdadas. As permissões explícitas são configuradas individualmente, enquanto as permissões herdadas são herdadas da pasta pai.
A hierarquia para permissões é a seguinte:
- Negar Explícito
- Permitir Explícito
- Negar Herdado
- Permitir Herdado
Use o Comando Get-Acl
para Obter ACL para Pastas e Arquivos no PowerShell
O primeiro comando PowerShell usado para gerenciar permissões de arquivo e pasta é Get-Acl
; ele lista todas as permissões do objeto.
Get-Acl \\fs1\shared\hr | fl
Um usuário deve possuir tanto as pastas de destino quanto as de origem para copiar permissões.
Get-Acl \\fs1\shared\hr | Set-Acl \\fs1\shared\hr
Use o Comando Set-Acl
para Definir ACL para Arquivos e Pastas no PowerShell
O comando PowerShell Set-Acl
é usado para alterar o descritor de segurança de um item especificado, como um arquivo, pasta ou chave de registro; em outras palavras, é usado para modificar permissões de arquivo ou pasta.
$acl = Get-Acl \\fs1\shared\hr
$AccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule("ENTERPRISE\User01", "FullControl", "Allow")
$acl.SetAccessRule($AccessRule)
$acl | Set-Acl \\fs1\shared\hr
Use o Parâmetro -RemoveAccessRule
para Remover Permissões de Usuário no PowerShell
$acl = Get-Acl \\fs1\shared\hr
$AccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule("ENTERPRISE\User01", "FullControl", "Allow")
$acl.RemoveAccessRule($AccessRule)
$acl | Set-Acl \\fs1\shared\hr
Desativar ou Ativar Herança de Permissões no PowerShell
Para gerenciar uma herança, podemos usar o método SetAccessRuleProtection
. O método tem dois parâmetros:
- O primeiro parâmetro é responsável por bloquear a herança da pasta pai. Ele retorna estados booleanos:
$true
e$false
. - O segundo parâmetro é utilizado para saber se as permissões herdadas atuais são removidas ou retidas. Ele também retorna estados booleanos:
$true
e$false
.
$acl = Get-Acl \\fs1\shared\hr
$acl.SetAccessRuleProtection($true, $false)
$acl | Set-Acl \\fs1\shared\hr
Vamos reverter essa alteração e habilitar a herança para a pasta novamente:
$acl = Get-Acl \\fs1\shared\hr
$acl.SetAccessRuleProtection($false, $true)
$acl | Set-Acl \\fs1\shared\hr
Use o Método SetOwner
para Alterar a Propriedade de Arquivo e Pasta no PowerShell
Se quisermos definir um proprietário para uma pasta, você precisa executar o método SetOwner
.
$acl = Get-Acl \\fs1\shared\hr
$object = New-Object System.Security.Principal.Ntaccount("ENTERPRISE\User01")
$acl.SetOwner($object)
$acl | Set-Acl \\fs1\shared\hr
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn