Protecția fișierelor și drepturile de acces

Protecția fișierelor și drepturile de acces

Deoarece fișierele sunt obiecte securizate. accesul la acestea este reglementat de un model de control al accesului care gestionează accesul la toate celelalte obiecte protejate din Windows. Pentru o explicație detaliată a acestui model, consultați capitolul Control acces.







Puteți seta un descriptor de securitate pentru un fișier sau un director când apelați funcția CreateFile. CreateDirectory sau CreateDirectoryEx. Dacă setați parametrul lpSecurityAttributes la NULL. Fișierul sau directorul primește descriptorul de securitate implicit. Listele de control al accesului (ACL) din descriptorul de securitate implicit pentru un fișier sau un director sunt moștenite din directorul său din nivelul anterior.

Fiți atenți! la faptul că descriptorul de securitate implicit este atribuit numai atunci când fișierul sau directorul este nou creat și nu atunci când elementul este redenumit sau mutat.

Pentru a prelua descriptorul de securitate al unui obiect de fișier sau de director, sunați la funcția GetNamedSecurityInfo sau GetSecurityInfo. Pentru a modifica descriptorul de securitate al unui obiect de fișier sau director, apelați funcția SetNamedSecurityInfo sau SetSecurityInfo.

Corecte permisiunile pentru fișiere și directoare includ drepturi de acces standard, (drepturi de acces standard) delete (ștergere), READ_CONTROL (citire de control), WRITE_DAC (controlul selectiv asupra accesului la post) și WRITE_OWNER (scriere exclusivă). Următorul tabel afișează drepturile de acces specifice pentru anumite fișiere și directoare.

FILE_APPEND_DATA
FILE_WRITE_ATTRIBUTES
FILE_WRITE_DATA
FILE_WRITE_EA
STANDARD_RIGHTS_WRITE
sincroniza

Windows Me / 98/95: Următoarele sunt singurele permisiuni acceptate: DELETE. FILE_WRITE_ATTRIBUTES. GENERIC_READ și GENERIC_WRITE.

Windows compară drepturile și informațiile de acces solicitate în tokenul de acces pentru fișiere cu informații în descriptorul sau fișierul de securitate al obiectului directorului. Dacă comparația nu interzice toate drepturile de acces solicitate care trebuie acordate, descriptorul de obiect este returnat thread-ului și sunt acordate drepturi de acces. Pentru mai multe informații despre acest proces, consultați articolul Interacțiune între fire și obiecte protejate.







În mod implicit, permisiunea de a accesa un fișier sau un director este gestionată de ACL-uri strict în descriptorul de securitate asociat acestui fișier sau director. În special, descriptorul securității directorului părinte nu este utilizat pentru a controla accesul la orice fișier sau director de fișiere. acces FILE_TRAVERSE drept poate fi realizată prin eliminarea privilegiilor BYPASS_TRAVERSE_CHECKING de la utilizatori. Acest lucru nu este recomandat în cazul general, deoarece multe programe gestionează incorect erorile traversării directorului. Utilizarea principală a dreptului de acces FILE_TRAVERSE în directoare este de a permite respectarea anumitor standarde POSIXIEEE și ISO. când aveți nevoie de capacitatea de a interacționa cu sistemele Unix.

Modelul de securitate pentru Windows prevede modul de director pentru copii de moștenire sau de succesiune pentru a preveni una sau mai multe elemente ale unei liste de control al accesului (ACE) la descriptorul de securitate al directorului părinte. Fiecare intrare ACE conține informații care determină modul în care aceste elemente pot fi moștenite și dacă acestea afectează obiectul director de moștenire. De exemplu, unele ACE moștenit moștenit controlul accesului la obiectele din directorul și sunt numite elemente de lucru ACL (ACE) (ACE-urile eficiente). Toate celelalte elemente ale ACE sunt numite moștenite numai ACE (ACE moștenite numai).

Modelul de securitate Windows implementează, de asemenea, ereditatea automată a intrărilor ACE de către obiectele copil în conformitate cu regulile de moștenire ACE. Această ereditate automată, împreună cu informațiile moștenite din fiecare ACE. stabilește ce restricții de securitate sunt transmise în ierarhia directoarelor.

Fiți atenți! la faptul că nu puteți folosi o negare a accesului ACE. pentru a împiedica accesul la fișier numai pentru GENERIC_READ. sau numai pentru GENERIC_WRITE. Pentru astfel de obiecte de fișier, acest lucru se datorează faptului că schemele universale ale setului de drepturi sunt și pentru GENERIC_READ. iar pentru GENERIC_WRITE includeți dreptul de acces SYNCHRONIZE. Dacă ACE eșuează, GENERIC_WRITE accesează mandatarul și gardianul solicită accesul la GENERIC_READ. astfel încât cererea va eșua, deoarece poate include și accesul SYNCHRONIZE. în care indirect a fost eșecul ACE. și invers. În loc să folosești o negare a accesului ACE. utilizați permisiunea de acces ACE. să vă permiteți în mod explicit să utilizați drepturile de acces permise.

Privilegiile de acces SE_BACKUP_NAME și SE_RESTORE_NAME au fost create special pentru a oferi această capacitate de copiere de rezervă a aplicației. Dacă aceste drepturi de acces sunt acordate și incluse în simbolul de acces al procesului de solicitare de rezervă, acesta poate apela funcția CreateFile. pentru a deschide fișierul sau directorul pentru backup, setând accesul standard READ_CONTROL drept ca valoare a parametrului dwDesiredAccess din el. Cu toate acestea, pentru a identifica apelantul ca procesul de backup, CreateFile de apel ar trebui să includă un steag parametru FILE_FLAG_BACKUP_SEMANTICS dwFlagsAndAttributes. Sintaxa completă a apelului funcției este mai jos:







Articole similare

Trimiteți-le prietenilor: