ICACLS
(da Integrity Change Access Control Lists)
ICACLS è uno strumento potente per gestire e modificare le autorizzazioni NTFS (controllo degli accessi) su file e cartelle. è stato introdotto in Windows Vista per sostituire il comando CACLSCACLS ed offre funzionalità più avanzate: in particolare, la possibilità di gestire i livelli di integrità.
Sintassi per archiviare le DACL (liste di controllo di accesso discrezionale) per i file e le cartelle corrispondenti a quelli specificati per consentirne un successivo utilizzo con /RESTORE, senza salvare i proprietari, le etichette di integrità e le SACL (liste di controllo di accesso di sicurezza):
ICACLS nomi /SAVE file_acl [/T] [/C] [/L] [/Q]
Dove (vedi sotto):
nomi- Specifica uno o più file o cartelle di cui si vogliono salvare le DACL./SAVE file_acl- Specifica il nome del file nel quale archiviare le DACL associate anomi.
Sintassi per applicare le DACL archiviate ai file e alle sottocartelle contenuti nella cartella specificata:
ICACLS cartella [/SUBSTITUTE vecchio_sid nuovo_sid [...]] /RESTORE file_acl [/C] [/L] [/Q]
Dove (vedi sotto):
cartella- Specifica la cartella ai cui file e sottocartelle si vogliono applicare le DACL archiviate./SUBSTITUTE vecchio_sid nuovo_sid [...]- Sostituisce i file o le cartelle con l'ID di sicurezzavecchio_sidconnuovo_sid./RESTORE file_acl- Specifica il nome del file nel quale sono state archiviate le DACL.
Sintassi per cambiare il proprietario per i nomi corrispondenti, senza forzare la modifica del proprietario:
ICACLS nomi /SETOWNER utente [/T] [/C] [/L] [/Q]
Dove (vedi sotto):
nomi- Specifica uno o più file o cartelle di cui si vuole modificare il proprietario./SETOWNER utente- Specifica il nome utente del nuovo proprietario.
Sintassi per trovare tutti i nomi corrispondenti che contengono un'ACL (lista di controllo di accesso) associata a un SID (ID di sicurezza) specificato:
ICACLS nomi /FINDSID sid [/T] [/C] [/L] [/Q]
Dove (vedi sotto):
nomi- Specifica uno o più file o cartelle di cui da analizzare./FINDSID sid- Specifica il SID di cui si vuole ottenere l'ACL.
Sintassi per trovare tutti i file le cui ACL non sono in forma canonica o le cui lunghezze non sono coerenti con il numero delle voci di controllo di accesso:
ICACLS nomi /VERIFY [/T] [/C] [/L] [/Q]
Dove (vedi sotto):
nomi- Specifica uno o più file o cartelle per i quali eseguire l'operazione.
Sintassi per ripristinare gli ACL ereditati predefiniti in tutti i file corrispondenti.
ICACLS nomi /RESET [/T] [/C] [/L] [/Q]
Dove (vedi sotto):
nomi- Specifica uno o più file o cartelle per i quali eseguire l'operazione.
Sintassi per impostare o cambiare i diritti di accesso (ovvero i permessi o le autorizzazioni) per i file specificati:
ICACLS nomi [/GRANT[:R] sid:perm [...]] [/DENY sid:perm [...]] [/REMOVE[:G|:D] sid [...]] [/T] [/C] [/L] [/Q] [/SETINTEGRITYLEVEL [(CI)][(OI)]livello] [/INHERITANCE{:E|:D|:R}]
Dove (vedi sotto):
nomi- Specifica uno o più file o cartelle per i quali manipolare i diritti di accesso./GRANT[:R] sid:perm [...]- Specifica uno o più ID di sicurezza associati agli utenti e i relativi permessi da concedere nell'ACL. Con:R, le autorizzazioni sostituiscono tutte quelle concesse in precedenza. Di default, i nuovi permessi si aggiungono ai precedenti./DENY sid:perm [...]- Specifica uno o più ID di sicurezza associati agli utenti e i relativi permessi da negare. All'autorizzazione negata è associata una voce di controllo di accesso specifica (non è cioè una semplice assenza di permesso)./REMOVE[:G|:D] sid [...]- Specifica uno o più ID di sicurezza associati agli utenti di cui si vogliono annullare tutti i permessi nell'ACL.:Gsi riferisce ai permessi concessi e:Dai permessi negati./SETINTEGRITYLEVEL [(CI)][(OI)]livello- Aggiunge una voce di controllo di accesso di integrità a tutti i file corrispondenti. Al posto di livello specificare:L- Basso (low);M- Medio (medium);H- Alto (high).
(CI)e(OI)sono opzioni che permettono di cambiare il tipo di ereditarietà delle cartelle./INHERITANCE{:E|:D|:R}- Specifica se tenere conto dell'ereditarietà delle cartelle nell'operazione.:E- Abilita l'ereditarietà;:D- Disabilita l'ereditarietà, copiando quindi le voci di controllo di accesso;:R- Rimuove tutte le voci di controllo di accesso ereditate.
Per tutte le funzioni di ICACLS, il SID può essere espresso in forma numerica o come nome. Se si utilizza la forma numerica, sarà necessario un asterisco * all'inizio del SID. Inoltre:
/T- Estende l'operazione su tutti i file e le sottocartelle contenute nelle cartelle specificate./C- Continua l'operazione anche in caso di errori, che verranno comunque visualizzati./L- Esegue l'operazione sul collegamento simbolico anziché sul file o sulla cartella a cui si riferisce./Q- Nasconde i messaggi relativi alle operazioni riuscite.perm- è una maschera di autorizzazione che può essere specificata in due modi diversi.
Sequenza di diritti d'accesso semplici (autorizzazioni di base):N- Nessun permesso;F- Accesso completo;M- Permesso di modifica;RX- Permesso di lettura ed esecuzione;R- Permesso di lettura;W- Permesso di scrittura;D- Permesso di eliminazione.
DE- Eliminazione;RC- Lettura DAC (controlli d'accesso discrezionali, cioè può leggere i permessi);WDAC- Scrittura DAC (può cambiare i permessi);WO- Proprietario scrittura (diventa proprietario);S- Sincronizzazione;AS- Sicurezza sistema di accesso;MA- Diritti massimi concedibili;GR- Lettura generica;GW- Scrittura generica;GE- Esecuzione generica;GA- Tutti i diritti d'accesso generici;RD- Lettura dati/elenco cartelle;WD- Scrittura dati/aggiunta di file;AD- Aggiunta dati/aggiunta di sottocartelle;REA- Lettura attributi estesi;WEA- Scrittura attributi estesi;X- Esecuzione/transito (quest'ultimo è il diritto di attraversare/aprire la cartella);DC- Eliminazione figli (cioè eliminazione di sottocartelle e file, se gli attributi di questi lo permettono);RA- Lettura attributi;WA- Scrittura attributi.
(OI)- Ereditarietà oggetto: gli oggetti in questo contenitore erediteranno questa voce di controllo d'accesso;(CI)- Ereditarietà contenitore: i contenitori all'interno di questo contenitore erediteranno questa voce di controllo d'accesso;(IO)- Solo ereditarietà: le voci di controllo d'accesso sono ereditate dal contenitore genitore, ma non sono applicate all'oggetto stesso;(NP)- Non propagare ereditarietà: le voci di controllo d'accesso per i contenitori e gli oggetti sono ereditate dal contenitore genitore, ma non si propagano ai contenitori nidificati;(I)- Autorizzazione ereditata da contenitore genitore.
Notare che il comando mantiene l'ordinamento canonico delle voci di controllo di accesso: negazioni esplicite, permessi espliciti, negazioni ereditate, permessi ereditati.
Esempi:
1. Salva nel file pippo9 le ACL per tutti i file nel percorso C:\mozica e nelle relative sottocartelle.
icacls C:\mozica\* /save pippo9 /t
2. Ripristina le ACL per i file specificati in pippo9 ed esistenti in C:\mozica e nelle sottocartelle.
icacls c:\mozica\ /restore pippo9
3. Concede all'utente MegadirettoreGalattico i diritti di scrittura DAC e di eliminazione per il file megaditta.txt.
icacls megaditta.txt /grant MegadirettoreGalattico:(DE,WDAC)
Approfondimento:
è possibile trovare velocemente il proprio nome utente dalla variabile d'ambiente USERNAME (vedi ECHOECHO):
echo %username%
Commenti