Come gestire gli ACL del file system con gli script PowerShell

Tipi di autorizzazioni NTFS per file e cartelle

Esistono autorizzazioni NTFS sia di base che avanzate. È possibile impostare ciascuna delle autorizzazioni su “Consenti” o “Nega”. Ecco le autorizzazioni di base:

  • Controllo completo: gli utenti possono modificare, aggiungere, spostare ed eliminare file e directory, nonché le loro proprietà associate. Inoltre, gli utenti possono modificare le impostazioni delle autorizzazioni per tutti i file e le sottodirectory.
  • Modifica: Gli utenti possono visualizzare e modificare i file e le proprietà dei file, tra cui l’eliminazione e l’aggiunta di file a una directory o le proprietà del file a un file.
  • Read& Execute: Gli utenti possono eseguire file eseguibili, incluso script
  • Read: Gli utenti possono visualizzare file, proprietà dei file e directory.
  • Write: Gli utenti possono scrivere su un file e aggiungere file alle directory.

Ecco l’elenco delle autorizzazioni avanzate:

  • Cartella trasversale / Esegui file: Gli utenti possono navigare tra le cartelle per raggiungere altri file o cartelle, anche se non dispongono di autorizzazioni per questi file o cartelle. Gli utenti possono anche eseguire file eseguibili. L’autorizzazione della cartella Traverse ha effetto solo quando il gruppo o l’utente non dispone del “Controllo Bypass Traverse” nello snap-in Criteri di gruppo.
  • Elenco cartella / Leggere i dati: Gli utenti possono visualizzare un elenco di file e sottocartelle all’interno della cartella, nonché il contenuto dei file.
  • Attributi di lettura: gli utenti possono visualizzare gli attributi di un file o di una cartella, ad esempio se è di sola lettura o nascosto.
  • Scrivi attributi: gli utenti possono modificare gli attributi di un file o di una cartella.
  • Read Extended Attributes: gli utenti possono visualizzare gli attributi estesi di un file o di una cartella, ad esempio autorizzazioni e tempi di creazione e modifica.
  • Scrivi attributi estesi: gli utenti possono modificare gli attributi estesi di un file o di una cartella.
  • Crea file / Scrivi dati: L’autorizzazione” Crea file ” consente agli utenti di creare file all’interno della cartella. (Questa autorizzazione si applica solo alle cartelle.) L’autorizzazione “Scrivi dati” consente agli utenti di apportare modifiche al file e sovrascrivere il contenuto esistente. (Questa autorizzazione si applica solo ai file.)
  • Crea cartelle / Aggiungi dati: L’autorizzazione” Crea cartelle ” consente agli utenti di creare cartelle all’interno di una cartella. (Questa autorizzazione si applica solo alle cartelle.) L’autorizzazione “Aggiungi dati” consente agli utenti di apportare modifiche alla fine del file, ma non possono modificare, eliminare o sovrascrivere i dati esistenti. (Questa autorizzazione si applica solo ai file.)
  • Elimina: gli utenti possono eliminare il file o la cartella. (Se gli utenti non hanno l’autorizzazione “Elimina” su un file o una cartella, possono comunque eliminarlo se hanno l’autorizzazione “Elimina sottocartelle e file” sulla cartella principale.)
  • Permessi di lettura: gli utenti possono leggere le autorizzazioni di un file o una cartella, come “Controllo completo”, “Lettura” e “Scrittura”.
  • Modifica autorizzazioni: gli utenti possono modificare le autorizzazioni di un file o una cartella.
  • Assumere la proprietà: Gli utenti possono assumere la proprietà del file o della cartella. Il proprietario di un file o di una cartella può sempre modificare le autorizzazioni su di esso, indipendentemente dalle autorizzazioni esistenti che proteggono il file o la cartella.
  • Sincronizza: gli utenti possono utilizzare l’oggetto per la sincronizzazione. Ciò consente a un thread di attendere fino a quando l’oggetto non si trova nello stato segnalato. Questo diritto non è presentato in ACL Editor. Si può leggere di più su di esso qui.

È possibile trovare tutte queste autorizzazioni utente eseguendo il seguente script PowerShell:

::getnames()

Le autorizzazioni NTFS possono essere esplicite o ereditate. Le autorizzazioni esplicite sono autorizzazioni configurate individualmente, mentre le autorizzazioni ereditate vengono ereditate dalla cartella principale. La gerarchia delle autorizzazioni è la seguente:

  • Explicit Deny
  • Explicit Allow
  • Inherited Deny
  • Inherited Allow

Ora che sappiamo che le autorizzazioni NTFS sono, esploriamo come gestirle.

Get ACL for Files and Folders

Il primo cmdlet PowerShell utilizzato per gestire le autorizzazioni di file e cartelle è “get-acl”; elenca tutte le autorizzazioni degli oggetti. Per esempio, si può ottenere l’elenco di tutte le autorizzazioni per la cartella con il percorso oggetto “\\fs1\condivisa\sales”:

get-acl \\fs1\shared\sales | fl

Se si desidera ottenere un pieno di autorizzazioni NTFS report tramite PowerShell, è possibile seguire questa facile sull’esportazione di autorizzazioni NTFS per il CSV.

Copia le autorizzazioni di file e cartelle

Per copiare le autorizzazioni, un utente deve possedere sia le cartelle di origine che quelle di destinazione. Il seguente comando copierà le autorizzazioni dalla cartella “Contabilità” alla cartella “Vendite”:

get-acl \\fs1\shared\accounting | Set-Acl \\fs1\shared\sales

Come possiamo vedere dall’output dei comandi “get-acl” prima e dopo la copia delle autorizzazioni, le autorizzazioni della cartella condivisa “Sales” sono state modificate.

Set File and Folder Permissions

Il cmdlet PowerShell “set-acl” viene utilizzato per modificare il descrittore di sicurezza di un elemento specificato, ad esempio un file, una cartella o una chiave di registro; in altre parole, viene utilizzato per modificare i permessi di file o cartelle. Lo script seguente imposta l’autorizzazione “FullControl” su “Consenti” per l’utente “ENTERPRISE \ T.Simpson” nella cartella “Vendita”

Se si desidera impostare le autorizzazioni per gli utenti o i gruppi di protezione, scegliere dalla tabella di seguito:

Ci sono anche le autorizzazioni set di base dei diritti di accesso che può essere applicato:

Rimuovere le Autorizzazioni Utente

Per rimuovere un permesso, usare il “RemoveAccessRule” parametro. Cancelliamo l’autorizzazione “Consenti FullControl” per T. Simpson nella cartella “Sales”:

Si noti che T.Simpson ha ancora il permesso” Nega FullControl”. Per rimuoverlo, usiamo il comando “PurgeAccessRules”, che cancellerà completamente i permessi di T. Simpson nella cartella” Sales”:

Si noti che” PurgeAccessRules ” non funziona con un nome utente stringa; funziona solo con SID. Pertanto, abbiamo utilizzato la classe” Ntaccount ” per convertire il nome dell’account utente da una stringa in un SID. Si noti inoltre che “PurgeAccessRules” funziona solo con autorizzazioni esplicite; non elimina quelli ereditati.

Disabilita o abilita l’ereditarietà delle autorizzazioni

Per gestire l’ereditarietà, usiamo il metodo “SetAccessRuleProtection”. Ha due parametri:

  • Il primo parametro è responsabile del blocco dell’ereditarietà dalla cartella principale. Ha due stati:” true vero “e”false falso”.
  • Il secondo parametro determina se le autorizzazioni ereditate correnti vengono mantenute o rimosse. Ha gli stessi due stati:” true vero “e”false falso”.

Disabilitiamo l’ereditarietà per la cartella “Sales” ed eliminiamo anche tutte le autorizzazioni ereditate:

$acl = Get-Acl \\fs1\shared\sales$acl.SetAccessRuleProtection($true,$false)$acl | Set-Acl \\fs1\shared\sales

Ora abbiamo solo un’autorizzazione di accesso rimasta (perché è stata aggiunta esplicitamente); tutte le autorizzazioni ereditate sono state rimosse.

facciamo tornare questo cambiamento e abilitare l’eredità per la cartella “Vendita” di nuovo:

$acl = Get-Acl \\fs1\shared\sales$acl.SetAccessRuleProtection($false,$true)$acl | Set-Acl \\fs1\shared\sales

Modificare File e Cartelle di Proprietà

Se si desidera impostare un proprietario di una cartella, è necessario eseguire il “setproprietario che” il metodo. Facciamo “ENTERPRISE \ J. Carter” il proprietario della cartella” Vendite”:

Si noti che abbiamo nuovamente utilizzato la classe “Ntaccount” per convertire il nome dell’account utente da una stringa in un SID.

Si noti che il metodo “SetOwner” non consente di modificare il proprietario in qualsiasi account desiderato; l’account deve avere i diritti “Take Ownership”, “Read” e “Change Permissions”.

Come puoi vedere, è molto facile gestire le autorizzazioni NTFS con PowerShell. Ma non dimenticare di controllare anche le autorizzazioni NTFS — è fondamentale per la sicurezza tenere traccia di tutte le modifiche apportate ai file server al fine di ridurre la perdita di dati e combattere la minaccia interna e altri rischi per la sicurezza IT. Ecco una guida di base su come controllare le autorizzazioni NTFS con PowerShell.

Jeff è direttore di Global Solutions Engineering presso Netwrix. Lui è un blogger di lunga data Netwrix, altoparlante, e presentatore. Nel blog Netwrix, Jeff condivide lifehacks, suggerimenti e trucchi che possono migliorare notevolmente la vostra esperienza di amministrazione del sistema.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.