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
| Permesso | Descrizione |
|---|---|
| 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)
| Attributo | Descrizione |
|---|---|
| (OI): Object Inherit | I permessi si applicano a tutti i file nella cartella. |
| (CI): Container Inherit | I permessi si applicano a tutte le sottocartelle. |
| (IO): Inherit Only | I permessi non si applicano all’oggetto, ma solo a quelli contenuti. |
| (NP): No Propagate Inherit | I 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.