Existe uma maneira de dar permissões de arquivo NTFS para usuários de outras instalações do Windows?

4

Estou tentando definir permissões de arquivos para que usuários de duas instalações do Windows possam acessar determinados arquivos de um disco rígido NTFS compartilhado, sem recorrer a permissões "Todos".

De dentro de uma instalação, posso obter direitos para seu (s) usuário (s) local (is), mas não posso conceder permissões para o outro usuário pelo SID:

icacls * / grant * S-1-5-21-3699620855-3856482933-2467390241-1001: R / T * S-1-5-21-3699620855-3856482933-2467390241-1001: Nenhum mapeamento entre os nomes das contas e as identificações de segurança foi feito.

Aparentemente, o Windows precisa ter um registro do SID de alguma forma. Existe uma maneira de forçá-lo a dar permissões para um SID "estrangeiro"?

    
por Ben 05.08.2013 / 12:30

1 resposta

1

Consegui encontrar esta função do powershell que pretende fazer exatamente o que você deseja:

function SetNTFSPermissionsBySid([string]$directory, [System.DirectoryServices.DirectoryEntry]$objAD)
{
    # Convert byte array sid to sid string
    $sID = New-Object System.Security.Principal.SecurityIdentifier $objAD.objectsid[0],0

    # Inheritance This Folder, Subfolders and Files)
    $inherit = [system.security.accesscontrol.InheritanceFlags]"ContainerInherit, ObjectInherit"
    $propagation = [system.security.accesscontrol.PropagationFlags]"None"

    # Retrieve the ACL
    $aCL = Get-Acl $directory

    # Create Ace
    $accessRule = New-Object System.Security.AccessControl.FileSystemAccessRule($sID, "Modify", $inherit, $propagation, "Allow")

    # Add Ace to Acl    
    $aCL.AddAccessRule($accessrule)

    # Set Acl to the directory
    Set-Acl -aclobject $aCL -path $directory
}

Todo o crédito vai para Configurações Permissões do NTFS por SID no PowerShell da Remko Weijnen.

Isso exigiria o PowerShell 3.0+ devido ao uso de Get-Acl e Set-Acl .

    
por 10.08.2014 / 19:56