Criar a partilha é um comando. O trabalho é casar duas camadas. No Windows Server, o pedido pela rede atravessa duas camadas: a capa de partilha, que o serviço SMB (Server Message Block) avalia quando a ligação abre, e os ACLs NTFS (Access Control List), que o sistema de ficheiros avalia em cada pasta e ficheiro. Qualquer uma nega sozinha — um New-SmbShare perfeito não salva uma pasta sem o grupo certo no NTFS. Este tutorial monta a cadeia e fecha na partilha do ERP que a contabilidade já perdeu uma vez.

TL;DR — a receita em duas camadas

Na capa de partilha, largura: Authenticated Users com Alterar e administradores com Controlo Total, no New-SmbShare. No NTFS, restrição por grupos de domínio: icacls com /inheritance:r e concessões (OI)(CI). Confirma com Get-SmbShareAccess, icacls e Effective Access — o cálculo vê só o NTFS.

1. A decisão: partilha larga no topo, NTFS restrito no fundo

A ordem do sysadmin: no topo dá-se largura na capa de partilha, no fundo restringe-se no NTFS. A capa de partilha tem três degraus — Leitura (Read), Alterar (Change) e Controlo Total (Full Control) — e vale para a partilha inteira de uma vez. Por isso fica lá a largura: Authenticated Users com Alterar, administradores com Controlo Total. A finura mora no NTFS, que aceita concessões por grupos de domínio (ex.: CONTOSO\Contabilidade) em cada pasta. Quando muda quem precisa de acesso, muda-se o grupo no AD — as concessões seguem.

Na capa larga, a escolha certa: Authenticated Users, não Everyone. Desde o Windows Server 2003 que Everyone cobre apenas Authenticated Users e Guest — antes dessa geração, incluía ainda as ligações sem conta do Anonymous Logon. O Authenticated Users entra só nas contas que passaram um início de sessão — sem convidados, nem mesmo um Guest com palavra-passe. Everyone fica para laboratórios.

2. Criar a partilha com New-SmbShare

A pasta e o New-SmbShare

O terreno: FS01, membro do domínio CONTOSO, pasta do ERP em D:\Shares\ERP. A pasta nasce com mkdir e a partilha com New-SmbShare — nome, caminho, listas de acesso e o modo de enumeração:

mkdir D:\Shares\ERP
New-SmbShare -Name "ERP" -Path "D:\Shares\ERP" -FullAccess "Administrators" -ChangeAccess "Authenticated Users" -Description "ERP Contabilidade" -FolderEnumerationMode AccessBased

Name ScopeName Path Description
---- --------- ---- -----------
ERP * D:\Shares\ERP ERP Contabilidade

Define sempre as listas no próprio comando: largura no -ChangeAccess (Alterar para Authenticated Users) e Controlo Total nos administradores. O -FolderEnumerationMode AccessBased esconde os ficheiros que o utilizador não pode abrir — por defeito, Unrestricted, que mostra até os nomes que o NTFS nega. E o -WhatIf não funciona neste cmdlet — confirma o caminho antes do Enter.

Conferir a capa de partilha

Na mesma consola:

Get-SmbShareAccess -Name "ERP"

Name ScopeName AccountName AccessControlType AccessRight
----- --------- ----------- ----------------- -----------
ERP * Default BUILTIN\Administrators Allow Full
ERP * Default Authenticated Users Change

Os degraus e o que cada um soma ficam na secção 1 — nas propriedades da partilha (separador Permissões) o mesmo mapa aparece por botões.

Fechar o NTFS com icacls

A capa do disco entra com o icacls. Duas linhas: cortar herança e segurar SYSTEM e administradores, depois o grupo de negócio:

icacls D:\Shares\ERP /inheritance:r /grant:r "NT AUTHORITY\SYSTEM:(OI)(CI)F" "Administrators:(OI)(CI)F"
Successfully processed 1 files; Failed processing 0 files
icacls D:\Shares\ERP /grant:r "CONTOSO\Contabilidade:(OI)(CI)M"
Successfully processed 1 files; Failed processing 0 files

O /inheritance:r remove os ACEs herdados (I) vindos de D:\Shares e a pasta deixa de nascer com o mapa da raiz. Cada /grant:r escreve uma concessão explícita e substitui as anteriores do mesmo principal. Os sinalizadores (OI)(CI) mandam o direito descer às subpastas e aos ficheiros por baixo — sem eles, o resto fica sem nada.

O NT AUTHORITY\SYSTEM fica na lista: os serviços avaliam o disco com a rede parada. Nos servidores com interface em português os builtin saem traduzidos (BUILTIN\Administradores e não Administrators) — e não fica pelos builtin: Authenticated Users e NT AUTHORITY\SYSTEM também são strings localizadas que falham numa build noutra língua. No icacls o remendo robusto é escrever SIDs com o prefixo *: *S-1-5-32-544 (Administrators), *S-1-5-18 (SYSTEM) e *S-1-5-11 (Authenticated Users). Os grupos de domínio são os teus.

Mostrar o ACL e confirmar no Effective Access

O mapa final lê-se no icacls sem parâmetros:

icacls D:\Shares\ERP

D:\Shares\ERP CONTOSO\Contabilidade:(OI)(CI)M
NT AUTHORITY\SYSTEM:(OI)(CI)F
BUILTIN\Administrators:(OI)(CI)F
Successfully processed 1 files; Failed processing 0 files

Nada de (I): é tudo explícito pela ordem canónica — recusas primeiro, concessões a seguir, herdados por fim. Um /deny bate mais alto do que uma concessão herdada: precisão pontual, não rotina.

A prova faz-se no Explorador de Ficheiros: propriedades da pasta, separador Segurança, botão Avançado (Advanced), separador Effective Access e Select a user. Escolhe uma conta da Contabilidade e o Windows calcula o resultado — o cálculo conta apenas os ACLs NTFS.

3. Armadilhas típicas

Everyone herdado do servidor de ficheiros antigo

Partilhas trazidas de um servidor de ficheiros antigo chegam com a era embutida: na família Windows Server 2003 qualquer partilha nova ficava com Everyone em Leitura por defeito e, antes do 2003, o Everyone ainda incluía ligações anónimas. Ao tocar nesse legado: troca Everyone por Authenticated Users na capa de partilha e traz os ACLs NTFS com robocopy /copyall — o robocopy por defeito só anda com dados, atributos e timestamps e deixa as ACLs para trás.

A herança que reescreve o teu ACL

Uma pasta dentro de D:\Shares nasce com os ACEs da raiz — os grupos de cima, não os teus. Recriada num restauro, nasce outra vez com herança: grupos a mais, ou nenhum dos teus. O icacls sem parâmetros revela os herdados (I). A meia herança também morde: uma concessão sem (OI)(CI) vale só para a pasta — as subpastas e os ficheiros ficam de fora. O remendo: /inheritance:r e o mapa explícito próprio.

A sessão local ignora a capa de partilha

As permissões de partilha valem exclusivamente pelo caminho de rede. A sessão no próprio FS01 (consola ou RDP) ignora a capa de partilha e fica-se pelo NTFS. As cópias de segurança que abrem D:\Shares\ERP localmente continuam a ler mesmo com a capa mal feita, e um teste de dentro do servidor pode dar verde enquanto a rede nega — testa sempre pelo caminho UNC.

4. Partilha vs. NTFS numa tabela

As duas camadas em contraponto:

Camada Permissões de partilha ACLs NTFS
Onde vive No serviço SMB do servidor, por partilha No disco, em cada pasta e ficheiro
O que alcança Só o acesso pela rede, por SMB Rede e sessão local — vale sempre
Quem avalia O serviço SMB ao abrir a ligação O driver NTFS em cada abertura de pasta ou ficheiro
Herança Não herda nem desce — vale para a partilha inteira Desce por (OI)(CI) e marca (I) no que veio de cima
Ferramentas New-SmbShare, Get-SmbShareAccess icacls, Get-Acl

Pela rede as duas camadas valem em conjunto e vence a mais restritiva — a capa larga não abre nada por acidente.

5. Cenário: a contabilidade perdeu a partilha do ERP

Segunda-feira, 08:12 (cenário ilustrativo): o financeiro liga — o ERP dá «acesso negado» em \\FS01\ERP para a contabilidade inteira. Diagnóstico pelas duas camadas, capa de partilha primeiro — um só comando:

Get-SmbShareAccess -Name "ERP"
icacls D:\Shares\ERP

A partilha está limpa: os Allow de sempre, sem negações. O disco conta a história: no icacls, os ACEs estão todos marcados com (I) e falta o CONTOSO\Contabilidade. Alguém recriou a pasta ao fim de semana e o ACL novo veio da herança de cima, sem o grupo. A partilha deixava passar — o disco negava.

O remendo repete o passo NTFS — cortar a herança e escrever o mapa explícito:

icacls D:\Shares\ERP /inheritance:r /grant:r "NT AUTHORITY\SYSTEM:(OI)(CI)F" "Administrators:(OI)(CI)F"
icacls D:\Shares\ERP /grant:r "CONTOSO\Contabilidade:(OI)(CI)M"
icacls D:\Shares\ERP

O icacls final mostra CONTOSO\Contabilidade:(OI)(CI)M na frente e os ACEs explícitos a seguir, e a conta de teste confirma Alterar no Effective Access — às 08:34, contabilidade de volta. Vinte e dois minutos, sem reinstalações e sem ligar ao fornecedor.

A moral: a capa de partilha larga é a mais estável — no disco de baixo é que o acidente acontece. Diagnóstico nas duas camadas, sempre: a partilha em duas linhas, o disco na saída do icacls.

6. Artigos Relacionados

7. Fontes Oficiais