Como você evita que membros do grupo excluam subpastas no compartilhamento

4

Eu tenho 3 grupos Electricalgrp , Plumbinggrp , & Payrollgrp que precisam de acesso a subpastas em um compartilhamento de rede chamado Dados .

Pasta compartilhada Dados e subpastas:

 Data
  |
  +--Electrical
  +--Plumbing
  +--Payroll

Basicamente, é isso que estou tentando realizar:

  1. O compartilhamento de dados restrito a Somente leitura não deseja que ninguém crie arquivos ou pastas na raiz do compartilhamento Dados .
  2. O Electricalgrp deve ser capaz de criar, excluir e modificar pastas e arquivos na pasta Elétrica , mas não poder excluir a pasta Elétrica . / li>
  3. O Plumbinggrp deve ser capaz de criar, excluir e modificar pastas e arquivos na pasta Plumbing , mas não pode excluir a pasta Plumbing . / li>
  4. O Payrollgrp deve ser capaz de criar, excluir e modificar pastas e arquivos na pasta Folha de pagamento , mas não pode excluir a pasta Folha de pagamento . / li>

Eu tentei as seguintes permissões de compartilhamento e configurações de segurança do NTFS:

Share              Permissions                    NTFS Security     Result

Data               Full control,Read,Change       Read              Works fine

Pastas de segurança NTFS (herança desativada)

Folder        Group               NTFS Security                  Result

Electrical    Electricalgrp       Modify             NO GOOD, able to delete folder
Electrical    Plumbinggrp         Deny, Read         Works, denies access to folder
Electrical    Payrollgrp          Deny, Read         Works, denies access to folder

Eu fiz o mesmo com as outras duas pastas, apenas mudei a negação e modifiquei para seus respectivos grupos.

Tudo funciona bem, exceto a parte que impede o grupo de excluir a pasta principal da qual é membro. Como evito isso?

    
por Jess 16.02.2017 / 05:34

2 respostas

1

Você pode conceder a seus usuários Modificar o acesso às suas subpastas de "nível superior", mas impedir que eles excluam (e, consequentemente, renomeiem) a pasta aplicando os dois conjuntos de permissões a seguir:

Para sua pasta de dados:

  • Impedir a herança de permissões
  • Conceder controle total ao sistema e administradores
  • Conceda a todos os seus usuários as seguintes permissões, especificando que elas se aplicam a: somente esta pasta :

    • Atravessar pasta / executar arquivo
    • Listar pasta / Ler dados
    • Atributos de leitura
    • Ler atributos estendidos
    • Permissões de leitura

Essa permissão permite a todos os usuários o acesso de leitura à pasta Data. Enquanto eles podem ver o conteúdo da pasta, eles não podem abrir nenhuma subpasta a menos que recebam permissões adicionais (abaixo).

Para cada subpasta "de nível superior":

Conceda o grupo de leitura / gravação desejado:

  • Modifique as permissões, especificando que elas se aplicam a: Subpasta e somente arquivos
  • As seguintes permissões, especificando que elas se aplicam a: somente esta pasta :
    • Atravessar pasta / executar arquivo
    • Listar pasta / Ler dados
    • Atributos de leitura
    • Ler atributos estendidos
    • Criar arquivos / gravar dados
    • Criar pastas / acrescentar dados
    • Permissões de leitura

Essas permissões concedem aos usuários selecionados as permissões Modificar tradicionais para a subpasta, com as duas exceções que NÃO PODEM 1) Renomear ou 2) Excluir a subpasta.

Para um toque adicional, ative a Enumeração Baseada no Acesso ( se o seu compartilhamento estiver em um servidor Windows) e quando os usuários abrirem a pasta Dados, eles só poderão ver as subpastas às quais receberam acesso adicional.

    
por 16.02.2017 / 23:59
1

Sua resposta está nas permissões "Herdar somente", que se aplicam apenas a subpastas e arquivos, não ao próprio container pai. conforme descrito por SS64 :

Inheritance

Inherited folder permissions are given as:

 OI - Object inherit    - This folder and files. (no inheritance to subfolders)
 CI - Container inherit - This folder and subfolders.
 IO - Inherit only      - The ACE does not apply to the current file/directory

These can also be combined as folllows:
 (OI)(CI)      This folder, subfolders, and files.
 (OI)(CI)(IO)  Subfolders and files only. <<<!!!
     (CI)(IO)  Subfolders only.
 (OI)    (IO)  Files only.

Execute este script como administrador. Observe que, se você modificou as permissões em subpastas individuais ou na pasta "Data", funcionará melhor se você as excluir e permitir que o script crie as pastas:

@echo off

rem Define the 'Data' folder path, with/without quotation:
set DesFol="X:\Example Path\Data"
set DesFol=%DesFol:"=%

rem If groups are global (domain groups), set this value to domain BIOS name (e.g MYDOMAIN in MYDOMAIN\Electricalgrp), otherwise, leave it blank:
set Dom=

rem Creates or claims the access to the folder:
if exist "%DesFol%" (
 takeown /f "%DesFol%"
) else (
 md "%DesFol%"
)

rem Removes potential inheritance of "Everyone" access + makes sure Admins have full access to subfolders + makes :
icacls "%DesFol%" /inheritance:r /grant:r SYSTEM:(CI)(OI)F Administrators:(CI)(OI)F Users:R /q

rem Create 'Electrical' subfolder and inherit full access to "SUBFOLDERS AND FILES ONLY":
md "%DesFol%\Electrical"
icacls "%DesFol%\Electrical" /grant %Dom%\Electricalgrp:(X,GR,RC,RD,RA,REA,AD,WD) /q
icacls "%DesFol%\Electrical" /grant %Dom%\Electricalgrp:(CI)(OI)(IO)M /q

rem Create 'Plumbing' subfolder and inherit full access to "SUBFOLDERS AND FILES ONLY":
md "%DesFol%\Plumbing"
icacls "%DesFol%\Plumbing" /grant %Dom%\Plumbinggrp:(X,GR,RC,RD,RA,REA,AD,WD) /q
icacls "%DesFol%\Plumbing" /grant %Dom%\Plumbinggrp:(CI)(OI)(IO)M /q

rem Create 'Payroll' subfolder and inherit full access to "SUBFOLDERS AND FILES ONLY":
md "%DesFol%\Payroll"
icacls "%DesFol%\Payroll" /grant %Dom%\Payrollgrp:(X,GR,RC,RD,RA,REA,AD,WD) /q
icacls "%DesFol%\Payroll" /grant %Dom%\Payrollgrp:(CI)(OI)(IO)M /q

Atualização:

Para ser sincero, essa é agora a solução fornecida por Twisty , escreveu o roteiro. Então é ele quem forneceu a resposta correta.

    
por 16.02.2017 / 06:30