O almeno, qualche informazione in più su questi due (apparentemente innocui) diritti

 

PREMESSA

Come sicuramente saprete, su Windows è possibile specificare due diritti particolari:

  • Backup files and directories (corrispondente a SeBackupPrivilege): consente di accedere a files/directory indipendentemente dalle ACL impostate AL SOLO SCOPO DI BACKUP
  • Restore files and directories (corrispondente a SeRestorePrivilege): consente di impostare l'owner e le acl su un file ma SOLTANTO DURANTE UN RESTORE
E fin qui niente i nuovo, in quanto si trova in tutti i manuali di Windows. Niente di grave e/o preoccupante, dato che comunque questi diritti (anche potenti perchè bypassano le security ACL sul File System) possono essere usati solo per backup/restore.

LA VERITA'

La ricerca della verità su questi signori mi è stata suggerita da un software (che non cito sia per non fare pubblicità sia perchè l'ultima volta che un mio collega l'ha usato ha letteralmente incasinato un file server) che consente di vedere/cambiare i permessi su tutti i files/directory COMPRESE QUELLE A CUI NON SI HA ACCESSO. Ora, la domanda sorge spontanea: come cavolo fa un software (peraltro installato sul client e che accede al server attraverso le normali condivisioni di rete) a farmi vedere/modificare le ACL all'interno di directory dove io non ho nemmeno i diritti di "list" e che (giustamente) non riesco ad aprire dal normale Windows Explorer?

La risposta è presto data: i due diritti di cui sopra (normalmente concessi al gruppo Administrators locale della macchina) garantiscono all'utente la possibilità di bypassare  (su MSDN si trova il termine circumventche rende proprio bene l'idea!) i normali controlli di ACL. In particolare:

  • SeBackupPrivilege consente l'accesso IN LETTURA a qualunque files/directory indipendentemente dall'ACL impostata
  • SeRestorePrivilege consente l'accesso IN SCRITTURA (compresa la scrittura dell'ACL e dell'owner) a qualunque files/directory.

Traduzione: se avete i privilegi di cui sopra le ACL sui files vi fanno un baffo, a patto di usare (per l'accesso) una qualche utility diversa dal normale Windows Explorer che, non usando tali rivilegi, ubbidisce a quanto scritto nelle ACL.

NOTE

A questo punto, dopo tanti anni, capisco una frase del corso di amministrazione di base di NT 4.0 (il mitico MS803):

 

In a minimum and medium security networks, grant one use backup rights and a different user restore rights. [...omissis ...] by removing the Restore Files and Directory user rights from the Backup Operator and Server Operators groups.

 

Tra l'altro, sul sito Microsoft si trovano alcuni esempi relativi a quale API usare (quello più carino riguarda come assegnare l'owner di un file, cosa che fino a 2003 non era fattibile).

Alla fine comunque sorge spontanea una domanda: ma non conveniva fare come su *nix dove root ha sempre e comunque tutti i diritti di accesso, invece di farsi tutte le $mogli_di_pippo mentali sui permessi?!?!?!?