icalcs

In questo articolo vedremo come impostare o resettare i permessi ntfs di un file o di una cartella in un sistema operativo Windows, con icacls.

In alcuni casi può capitare di perdere di vista la situazione dei permessi dei file e delle directory e può succedere di dover accedere ad un determinato file ma non avere i diritti per farlo oppure di dovere eseguire un software che, per questioni di autorizzazioni, non funziona come dovrebbe.

Potremmo anche avere la necessità di accedere ad un file che proviene da un vecchio backup o da un altro computer e che quindi è stato creato con un utente diverso; anche in questo caso non sarà possibile accedervi.

In tutti questi casi viene in aiuto il comando Icacls.

Che cosa è Icacls?

Icacls è il successore di cacls (Change Access Control Lists), una utility utilizzabile da riga di comando che permette di mostrare ed eseguire alcune operazioni sulla ACL di file o directory.

La ACL (lista di controllo degli accessi) elenca i permessi di un oggetto del filesystem e definisce come viene gestita la sua sicurezza gestendo chi e come può accedervi.

Le operazioni sulla ACL in realtà non sono le uniche possibili con questo tool. Quello che lo rende uno strumento potente è anche la possibilità di effettuare operazioni di backup e restore della ACL per file o directory, ma anche di cercare file che hanno come proprietario uno specifico utente.
E in più nel caso in cui un ACL si danneggi o venga distrutto, con icacls è possibile ripristinarlo resettandolo e settando permessi di default o ereditando quelli del genitore.

Le funzioni reset e grant di icacls

Reset

Icacls è un comando nativo di Windows che si può eseguire su Windows Vista, Windows 7, Windows 8 e Windows 10.
Immaginiamo di avere un hard disk esterno su cui è stato memorizzato uno studio fatto nel 2018 e di volerlo recuperare ma su cui quindi non abbiamo il controllo completo.

Appena tentiamo di aprire la cartella avremo il seguente messaggio di alert.

openfolder deny

Una soluzione è quindi quella di usare il reset di Icacls.
Ma attenzione ai passaggi seguenti.

Apriamo il terminale dei comandi in modalità amministratore.

command prompt

Spostiamoci nella cartella in questione e digitiamo il comando reset nel seguente modo:

 $> icacls * /t /q /c /reset

E anche in questo caso avremo una risposta di accesso negato.

reset and noaccess

È necessario quindi prima diventare proprietario della cartella con il comando takeown:

$> takeown / R / F *

takeown permission

Cliccando su Yes, a questo punto si avrà un reset dell’acl, e la situazione dei permessi sarà la seguente:

advanced security settings

Grant

Immaginiamo adesso di essere nella seguente situazione:

other advanced security settings

Cioè di avere accesso solo come utente Peter e di voler dare i grant anche all’utente federica.

Dicentiamo proprietario della cartella con il precedente comando

$> takeown / R / F *

e poi digitate il seguente comando:

$> icacls "E:\Study2018" /t /grant:F

In questo caso ho inserito le opzioni /t (ricorsivo) e F che significa full access per l’utente su cui dare il grant.

grant full access

Per altre opzioni consultare la pagina ufficiale.

Le altre funzioni di icacls

Se avete necessità di salvare il file acl per un successivo restore, questo è possibile farlo utilizzando una coppia di comandi save and restore.
Una operazione concettualmente molto semplice: le informazioni relative agli ACL vengono salvate in un file che può essere usato in caso di necessità per ripristinare una situazione precedente.
C’è da considerare però che i dati sui diritti di accessi, specialmente in cartelle condivise, possono essere molto variabili nel tempo.
Potremmo quindi trovarci nella situazione in cui andiamo a ripristinare una situazione diversa dalla realtà o addirittura incoerente.
Inoltre, il file che viene creato, apribile e leggibile con un comune text editor, sembra proprio essere un testo Unicode. Ma attenzione, perché non lo è.

Aprire il file e salvarlo con delle modifiche, lo renderà inutilizzabile nelle operazioni di Restore.

La coppia di comandi save e restore è la seguente:

icacls FILE_O_DIRECTORY /save aclfile /t

icacls DIRECTORY /restore aclfile

Notiamo subito una differenza tra i due comandi.

Il comando comando save può essere eseguito sia su file che su directory (FILE_O_DIRECTORY deve essere sostituito con il nome del file o della directory di cui vogliamo salvare gli ACL).

Mentre il comando restore funziona solo su directory.

Un esempio di utilizzo è il seguente:

E:\> icacls filediprova.txt /save aclfile /t

E:\>icacls . /restore aclfile

Come si può notare nel caso di restore non useremo il filediprova.txt ma la directory in cui è contenuto.

Conclusioni

Nei sistemi Windows, la possibilità di gestire le liste di controllo degli accessi, è un elemento di forza che dà modo agli utenti e ai processi di utilizzare al meglio le risorse.
In alcuni casi può essere complicato, ma con il tool icacls si hanno a disposizione molte funzioni che vengono in aiuto per garantire la sicurezza.

(Inglese, Portoghese, Brasile)



Come impostare o resettare i permessi ntfs di un file o una cartella con icacls
Iperius Backup Team
*****************************************

PLEASE NOTE: if you need technical support or have any sales or technical question, don't use comments. Instead open a TICKET here: https://www.iperiusbackup.com/contact.aspx

*****************************************

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

*****************************************

PLEASE NOTE: if you need technical support or have any sales or technical question, don't use comments. Instead open a TICKET here: https://www.iperiusbackup.com/contact.aspx

*****************************************