Autorizzazioni NTFS - Crea file e cartelle ma impedisce l'eliminazione e la modifica


10

Obiettivo: una cartella condivisa in cui gli utenti possono creare file ma non modificarli o eliminarli. Gli utenti dovrebbero anche essere in grado di creare sottocartelle.

Ho concesso al mio gruppo di sicurezza le seguenti autorizzazioni NTFS avanzate:

  • Attraversa cartella / Esegui file
  • Elenca cartella / Leggi dati
  • Leggi attributi
  • Leggi attributi estesi
  • Crea file / Scrivi dati
  • Autorizzazioni di lettura

Attraverso un processo di tentativi ed errori, ho scoperto che NON concedendo "Write Attributes", ciò ha l'effetto di impedire a un utente di modificare / eliminare i file esistenti (che è quello che voglio). Tuttavia, vorrei davvero una spiegazione sul perché esattamente questo funziona. L'unica teoria che ho è che la cancellazione / modifica di un file cambia gli attributi del file? Ecco una discussione sulla stessa linea .

EDIT - La seconda parte della mia domanda è irrilevante, pensavo di aver selezionato solo 'Crea file / Scrivi dati' ma avevo anche selezionato 'Crea cartelle / Aggiungi dati'.

Inoltre, desidero che gli utenti siano in grado di creare sottocartelle all'interno della radice e ho scoperto che concedendo "Crea file / Scrivi dati", ciò consente proprio questo. Ma ancora una volta, il nome suggerisce che questa autorizzazione dovrebbe consentire solo la creazione di file, non di cartelle, quindi non capisco perché funzioni? La spiegazione di Microsoft dell'attributo "Crea file / Scrivi dati" è "Per le cartelle, specifica se un utente può creare file all'interno della cartella. Per i file, specifica se un utente può modificare i file o sovrascrivere i dati". Non si fa menzione della possibilità di creare sottocartelle all'interno di una cartella?

Quindi, in sostanza, ho realizzato ciò che mi ero prefissato di fare ma non capisco perché funzioni?


Il contenuto di un file NTFS È un "attributo"; vale a dire l'attributo di dati predefinito senza nome e forse uno o più attributi di dati con nome.
kreemoweet

Vedi anche la buona risposta qui: superuser.com/a/1145363/132727
CrazyTim

Risposte:


7

Attraverso un processo di tentativi ed errori, ho scoperto che NON concedendo "Write Attributes", ciò ha l'effetto di impedire a un utente di modificare / eliminare i file esistenti (che è quello che voglio). Tuttavia, vorrei davvero una spiegazione sul perché esattamente questo funziona.

Questa è una funzione di come si verifica una modifica del file. Quando modifichi un file, il sistema operativo in realtà non modifica il file che stai modificando. Sostituisce il file che stai modificando con la copia che hai modificato. Quindi, in sostanza, una modifica del file prende una copia del file originale, lo carica in memoria (dove lo si modifica), elimina il file originale e crea un nuovo file con lo stesso nome nello stesso posto. Questo è il motivo per cui Deletesono necessarie le autorizzazioni NTFS per modificare i file - in effetti, se si controlla Advanced permissionssu un oggetto NTFS, non ci sono Modifyautorizzazioni - una modifica è in realtà solo una cancellazione e una scrittura.

Quindi, per creare quella nuova copia di un file, deve scrivere gli attributi del file di questo nuovo file ... e, naturalmente, la scrittura degli attributi richiede l' Write attributesautorizzazione NTFS. Ecco perché non è possibile modificare un file senza l' Write attributesautorizzazione NTFS.

In particolare, grazie a una chat con Fitzroy , l' attributo del file NTFS che deve essere scritto nel contesto di sicurezza dell'utente (che non può essere, senza l' Write Attributesautorizzazione), quando si modifica un file, ma non quando si crea uno completamente nuovo, essere il file LastModificationTime. Questa è una parte Standard Informationdell'attributo, secondo uno degli sviluppatori del Microsoft Core Team .


1
"Questo è il motivo per cui sono necessarie le autorizzazioni di eliminazione NTFS per modificare i file - in effetti, se si controllano le autorizzazioni avanzate su un oggetto NTFS, non esiste alcuna autorizzazione di modifica - una modifica è in realtà solo un'eliminazione e una scrittura." Potete supportarlo con qualsiasi fatto o riferimento? Perché attraverso ulteriori test ho scoperto che per modificare il contenuto di un semplice file di testo (usando il blocco note) ho appena aggiunto le seguenti autorizzazioni: Scrivi attributi, Scrivi attributi estesi e Crea cartelle / Aggiungi dati. Accetto che programmi diversi possano presentare comportamenti diversi quando si modifica un file ...
Fitzroy,

... tuttavia, penso che questo test dimostri che "Elimina" non è richiesto.
Fitzroy,

"Questa è una funzione di come si verifica esattamente una modifica del file. Quando modifichi un file, il sistema operativo in realtà non modifica il file che stai modificando. Sostituisce il file che stai modificando con la copia che hai modificato. Quindi, essenzialmente, una modifica del file prende una copia del file originale, lo carica in memoria (dove lo si modifica), elimina il file originale e crea un nuovo file con lo stesso nome nello stesso posto. " - è abbastanza fuorviante e gravemente impreciso a molti livelli tecnici diversi .
user2864740

3

È vero: non avere l'autorizzazione "Scrivi attributi" comporta che l'utente non è in grado di modificare i propri file. E secondo la documentazione Microsoft non ha senso. Ma la modifica di un file non implica la cancellazione e la ricreazione di esso. Quando un'applicazione apre un file per la modifica, il sistema operativo non elimina il file. Ma ciò che fa il sistema operativo è bloccare il file per impedire modifiche simultanee. La mia ipotesi è che il blocco del file rientri nel concetto di "modifica degli attributi del file". Pertanto, non essere in grado di modificare gli attributi si traduce in non essere in grado di modificare il file.

Per la seconda parte della tua domanda, non posso riprodurlo. Esistono due diverse autorizzazioni che si applicano a una cartella: "Crea file / ..." e "Crea cartelle / ..." e hanno funzionato secondo la documentazione durante i miei test.


Drk: sto solo digerendo la tua risposta. Cordiali saluti - Ho omesso un permesso nella mia domanda, avrei dovuto anche elencare "Leggi attributi estesi". Senza questa autorizzazione ho scoperto che gli utenti non possono visualizzare il contenuto di un file (ottengono un errore "Accesso negato"). Ho aggiornato la mia domanda di conseguenza.
Fitzroy,

Ok, per il mio test ho pensato che anche tu avessi concesso quel permesso. Ho scoperto che il blocco note non è in grado di modificare un file anche con l'autorizzazione '... / write data' concessa. Ecco un'altra cosa che vale la pena notare: scrivere i dati e aggiungere l'autorizzazione dei dati dipende da come l'applicazione apre il file per la modifica. Molto probabilmente il blocco note apre sempre i file per aggiungere dati, anche se non è necessario.
drk.com.ar,

Per la seconda parte della tua domanda, non posso riprodurlo. Esistono due diverse autorizzazioni che si applicano a una cartella: "Crea file / ..." e "Crea cartelle / ..." e hanno funzionato secondo la documentazione durante i miei test. Hai ragione, errore mio, ho pensato di aver selezionato solo "Crea file / Scrivi dati" ma avevo anche selezionato "Crea cartelle / Aggiungi dati".
Fitzroy,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.