tags: permessi icacls


Ecco un cheat sheet sui permessi in Windows, che copre la loro suddivisione, come visualizzarli e come interpretarli correttamente:

1. Permessi Principali su File e Cartelle

PermessoDescrizione
F (Full Control)Controllo completo: Lettura, scrittura, esecuzione e modifica ACL.
M (Modify)Modifica: Lettura, scrittura, cancellazione e modifica del contenuto.
RX (Read & Execute)Lettura ed esecuzione di file o programmi.
R (Read)Solo lettura: leggere il contenuto, senza modificarlo.
W (Write)Scrittura: modificare il contenuto, senza eliminare file o cartelle.

2. Visualizzare i Permessi

Puoi usare icacls o AccessChk (parte del pacchetto Sysinternals) per vedere i permessi di un file o directory.

Esempio con icacls:

icacls "C:\path\to\file_or_folder"

Uscita tipica:

C:\path\to\file_or_folder BUILTIN\Administrators:(I)(F)                                                    NT AUTHORITY\SYSTEM:(I)(F)                                                       BUILTIN\Users:(I)(RX)                                                            Everyone:(M)`
 
  • (I): Permessi ereditati (inherited).
  • (F): Full Control.
  • (M): Modify.
  • (RX): Read and Execute.

Esempio con AccessChk (Sysinternals):

bash

Copy code

accesschk.exe -kqv "C:\path\to\file_or_folder"

Questo mostrerà un output dettagliato sui permessi assegnati al file o alla directory.

3. Interpretare i Permessi

Struttura di icacls:

vbnet

Copy code

C:\path\to\file_or_folder [ACCOUNT]:([INHERITED?])([PERM])

  • ACCOUNT: Gruppo o utente a cui si applicano i permessi (es. Everyone, Administrators, Users, SYSTEM).
  • (I): Indica che i permessi sono ereditati da una cartella superiore.
  • [PERM]: I permessi effettivi per quel file o cartella, ad esempio:
    • (F): Full control (controllo completo).
    • (M): Modify (modifica).
    • (RX): Read & execute (lettura ed esecuzione).
    • (R): Read (lettura).
    • (W): Write (scrittura).

4. **Permessi Specifici con icacls

Puoi verificare i permessi specifici per utenti o gruppi particolari:

bash

Copy code

icacls "C:\path\to\file_or_folder" /findsid "Everyone"

Questo ti mostrerà i permessi assegnati specificamente all’utente Everyone.

5. Controllare i Servizi e i Permessi

Per i servizi, puoi usare il comando sc e AccessChk per verificare i permessi. Ad esempio:

Verificare i dettagli di un servizio:

bash

Copy code

sc qc [NomeServizio]

Verificare i permessi su un servizio con AccessChk:

bash

Copy code

accesschk64.exe -qlc [NomeServizio]

6. Modifica e Gestione dei Permessi

Per modificare i permessi puoi usare icacls:

bash

Copy code

icacls "C:\path\to\file_or_folder" /grant Everyone:(F)

Questo comando concede a Everyone il controllo completo (F) sul file o cartella.

7. Attributi Addizionali (Flag)

AttributoDescrizione
(OI): Object InheritI permessi si applicano a tutti i file nella cartella.
(CI): Container InheritI permessi si applicano a tutte le sottocartelle.
(IO): Inherit OnlyI permessi non si applicano all’oggetto, ma solo a quelli contenuti.
(NP): No Propagate InheritI permessi non vengono propagati ulteriormente.

8. Esempio Completo

bash

Copy code

C:\path\to\file_or_folder Everyone:(OI)(CI)(M)

Questo indica che il gruppo Everyone ha i permessi di Modifica (M) per tutti i file (OI) e cartelle (CI) all’interno del percorso.

9. Rimozione dei Permessi

Puoi anche rimuovere i permessi con icacls:

bash

Copy code

icacls "C:\path\to\file_or_folder" /remove Everyone

Questo rimuoverà tutti i permessi per il gruppo Everyone.