Le autorizzazioni ereditate non vengono aggiornate automaticamente quando si spostano le cartelle

Questo articolo fornisce una soluzione a un problema per cui le autorizzazioni ereditate non vengono aggiornate automaticamente quando si spostano le cartelle.

Si applica a: Windows Server 2012 R2
Numero KB originale: 320246

Sintomi

Un elenco di Controllo di accesso (ACL) può mostrare le autorizzazioni contrassegnate come ereditate dall'elemento padre, ma l'elemento padre stesso potrebbe non avere queste autorizzazioni configurate nel relativo ACL. Questo sintomo può verificarsi anche se l'ereditarietà è ancora abilitata. Qualsiasi modifica successiva all'ACL della cartella padre fa sì che l'ACL dell'elemento figlio riceva le autorizzazioni ereditate. Inoltre, qualsiasi tentativo di modificare l'elenco di controllo di accesso dell'elemento figlio comporta l'applicazione dell'ereditarietà (a meno che la modifica non contrassegni l'ACL come protetto dall'ereditarietà). Questo comportamento può essere sorprendente se lo stato di ereditarietà non è stato annotato prima di iniziare a modificare l'ACL.

Nota

Questo comportamento non può essere causato dallo spostamento di una cartella quando si esegue un computer basato su Windows Vista. L'operazione di spostamento ora funziona perché la cartella o il file può ereditare l'ACL della cartella o del file di destinazione. La cartella o il file dispone anche di autorizzazioni contrassegnate come ereditate dall'elemento padre. Si tratta di una modifica in base alla progettazione da Windows XP a Windows Vista e Windows Server 2008.

Causa

Questo comportamento può essere causato dallo spostamento di una cartella. Quando si sposta una cartella, l'elenco di controllo di accesso non viene modificato e le autorizzazioni ereditate non vengono aggiornate. Si noti che spostarsi nel contesto di questo articolo significa sempre spostarsi all'interno dello stesso volume.

Quando si sposta un file o una cartella, anche l'ACL viene spostato e non viene modificato in alcun modo. Anche quando l'ereditarietà è abilitata per questa cartella, le autorizzazioni ereditate non vengono aggiornate automaticamente. L'elenco di controllo di accesso verrà aggiornato alla successiva modifica delle autorizzazioni e questo forza l'elemento padre a propagarne le autorizzazioni.

Questo comportamento può anche essere causato da:

  • L'impostazione delle autorizzazioni di una cartella padre tramite CACLS non viene propagata alle sottocartelle. L'opzione /T non significa propagare i diritti usando l'ereditarietà, ma sovrascrivere tutti gli ACL.

  • Impostazione delle autorizzazioni di una cartella padre usando un'API che non propaga automaticamente l'ereditarietà ,ad esempio Adssecurity.dll.

  • Ripristino da un backup in un percorso diverso.

Risoluzione

Per evitare modifiche impreviste delle autorizzazioni, impostare l'elenco di controllo di accesso del file/cartella su protetto prima di spostarlo quando si desidera mantenere le impostazioni. In caso contrario, aggiornare manualmente l'elenco di controllo di accesso del file/cartella spostato usando l'editor dell'elenco di controllo di accesso di Explorer. Disabilitare e quindi abilitare nuovamente l'ereditarietà per forzare l'aggiornamento dell'elenco di controllo di accesso con le autorizzazioni ereditate corrette. È anche possibile usare un VBScript per automatizzare questo processo.

Stato

Si tratta di un comportamento legato alla progettazione del prodotto. Questo comportamento non si verifica a causa della modifica della progettazione in Windows Vista.

Passaggi per riprodurre il comportamento

  1. Creare una cartella test1 con autorizzazioni everyone:read e users:change .
  2. Creare una sottocartella test1\e abilitare l'ereditarietà dall'elemento padre (impostazione predefinita). Questa cartella deve mostrare everyone:read e users:change come autorizzazioni ereditate.
  3. Creare un'altra cartella test2 con solo amministratori:autorizzazioni di controllo completo .
  4. Spostare la sottocartella in test2.
  5. Visualizzare le autorizzazioni in test2\sub per visualizzare everyone:read e users:change come autorizzazioni ereditate, anche se l'autorizzazione padre è administrators:full control.
  6. Aggiungere un altro gruppo/utente (ad esempio guest) all'elenco di controllo di accesso della sotto-concessione, ad esempio accesso in lettura tramite l'editor ACL di Explorer. Dopo aver fatto clic su Applica, everyone:read e users:change vengono rimossi e solo gli amministratori:controllo completo vengono visualizzati come autorizzazioni ereditate accanto a quella appena aggiunta.