Windows non usa niente di così primitivo come un mucchio di numeri per rappresentare i permessi. Su Lunix, chmod 777 imposta i permessi di lettura, scrittura, eseguibile da tutti. I permessi di Unix funzionano abbastanza semplicemente, ma sono merda da cavernicoli per i moderni ambienti complessi. Windows usa permessi reali e utenti reali con una Access Control List collegata a qualsiasi oggetto (non solo ai file). Una Access Control List permette permessi più granulari ed estesi di una singola bitmask di flags.
Prima di tutto, cliccate con il tasto destro del mouse sul file con cui intendete lavorare. Nello screenshot qui sotto, segui le frecce viola per aggiungere l'account "Everyone" al file (ho usato Anonymous Logon come esempio, digita "everyone" nel campo, poi premi check names). Una volta aggiunto segui la freccia verde. Clicca su Everyone, poi clicca su "full control".
Nota nello screenshot che alcuni dei nomi sono preceduti da Kraken? Quelli sono gruppi locali. Appartengono alla mia macchina. Kraken è il nome della mia macchina ed è l'autorità di autenticazione. Un computer su un dominio di rete ha sia gruppi di dominio che utenti di dominio. La maggior parte dei computer su un dominio non avrà utenti locali oltre agli account di servizio. Nel caso di un dominio i nomi saranno come "DomainUser". Il dominio, prima della barra, è l'autorità di autenticazione. L'uso di gruppi e account di dominio vi permette di fornire un accesso granulare ai singoli account di rete anche se il vostro computer non ha mai interagito con quell'utente.
I diritti di rifiuto hanno la precedenza sui diritti di autorizzazione! Quindi se dai i diritti di "permettere" per il pieno controllo a "Tutti" ma "DomainKaren" ha i diritti di negare, Karen sarà negata. Non negare a tutti pensando che sia un account anonimo. Non importa quanti diritti "permetti" hai per utenti specifici, se neghi a tutti hai effettivamente messo quel file in un vuoto.
L'ACL in questo esempio è memorizzata direttamente nel file system. Se condividi un file in rete, la condivisione di rete ha una ACL unica, separata e indipendente. Puoi negare un utente attraverso la rete, ma permettergli l'accesso se è connesso localmente. L'ACL locale ha la precedenza sull'ACL di rete. Se la tua ACL locale nega "DomainUsers" ma permette "LocalBill" allora Bill sarà in grado di accedere al file poiché il suo account è locale, anche in rete.
Anche le ACL sono ereditate. Un file in una directory, inizialmente, ha la stessa ACL della directory - finché non la si cambia. Nella maggior parte dei casi di navigazione dei file usando un'applicazione, prima di poter accedere ad un file dovete essere in grado di accedere alla directory in cui si trova. Se potete accedere direttamente al file, questo non si applica, ma i diritti di default saranno ancora un potenziale problema.
Le ACL si applicano a qualsiasi oggetto, non solo ai file. Una chiave di registro è un oggetto, ovviamente, un file ini Lunix non può fornire una ACL separata per ogni singola linea del file, Windows lo fa.
La linea di comando per lavorare con le ACL del file system è icacls (vedo ACL). La linea di comando per lavorare con le ACL di rete è "net share sharename /grant", che non usa l'intero set di funzionalità delle ACL disponibili.