Megosztás a következőn keresztül:


Fájlbiztonsági és hozzáférési jogosultságok

Mivel a fájlok biztonságos objektumok, azokhoz való hozzáférést a Hozzáférés-vezérlési modell szabályozza, amely a Windows összes többi biztonságos objektumához való hozzáférést szabályozza. A modell részletes ismertetését Hozzáférés-vezérlésicímű cikkben találja.

Ha meghívja a CreateFile, CreateDirectoryvagy CreateDirectoryEx függvényt, megadhat egy biztonsági leíró egy fájlhoz vagy könyvtárhoz. Ha NULL a lpSecurityAttributes paraméterhez, a fájl vagy könyvtár egy alapértelmezett biztonsági leírót kap. A fájl vagy könyvtár alapértelmezett biztonsági leírójában lévő hozzáférés-vezérlési listák (ACL) öröklődnek a szülőkönyvtárából. Vegye figyelembe, hogy az alapértelmezett biztonsági leíró csak akkor van hozzárendelve, ha egy fájl vagy könyvtár újonnan lett létrehozva, és nem akkor, amikor átnevezték vagy áthelyezték.

Egy fájl- vagy címtárobjektum biztonsági leírójának lekéréséhez hívja meg a GetNamedSecurityInfo vagy GetSecurityInfo függvényt. Egy fájl- vagy címtárobjektum biztonsági leírójának módosításához hívja meg a SetNamedSecurityInfo vagy SetSecurityInfo függvényt.

A fájlok és könyvtárak érvényes hozzáférési jogosultságai közé tartozik a DELETE, READ_CONTROL, WRITE_DAC, WRITE_OWNERés A SZINKRONIZÁLstandard hozzáférési jogosultságok. A Fájlelérési jogosultsági állandók táblája felsorolja a fájlokra és könyvtárakra vonatkozó hozzáférési jogosultságokat.

Bár a SYNC hozzáférési jog a szabványos hozzáférési jogosultsági listában van megadva, mint a várakozási függvények egyikében a fájlleíró megadásának joga, az aszinkron fájl I/O-műveletek használatakor a megfelelően konfigurált ÁTFEDÉSBEN lévő struktúrában lévő eseményleíróra kell várnia, nem pedig a SYNC hozzáférési jogosultsággal való szinkronizáláshoz.

Az alábbiakban a fájlok és könyvtárak általános hozzáférési jogosultsági .

Hozzáférés jobbra Leírás
FILE_GENERIC_EXECUTE
FILE_EXECUTE
FILE_READ_ATTRIBUTES
STANDARD_RIGHTS_EXECUTE
SZINKRONIZÁL
FILE_GENERIC_READ
FILE_READ_ATTRIBUTES
FILE_READ_DATA
FILE_READ_EA
STANDARD_RIGHTS_READ
SZINKRONIZÁL
FILE_GENERIC_WRITE
FILE_APPEND_DATA
FILE_WRITE_ATTRIBUTES
FILE_WRITE_DATA
FILE_WRITE_EA
STANDARD_RIGHTS_WRITE
SZINKRONIZÁL

 

A Windows összehasonlítja a kért hozzáférési jogosultságokat és a szál hozzáférési jogkivonatában szereplő információkat a fájl vagy könyvtárobjektum biztonsági leírójában található információkkal. Ha az összehasonlítás nem tiltja meg az összes kért hozzáférési jogosultság megadását, a rendszer visszaadja az objektum leíróját a szálnak, és a hozzáférési jogosultságok meg lesznek adva. További információ erről a folyamatról: Szálak és biztonságos objektumok közötti interakció.

Alapértelmezés szerint a fájlokhoz vagy címtárakhoz való hozzáférés engedélyezését szigorúan az adott fájlhoz vagy könyvtárhoz társított biztonsági leíróban lévő ACL-ek szabályozzák. A szülőkönyvtárak biztonsági leíróját nem használják gyermekfájlokhoz vagy címtárakhoz való hozzáférés szabályozására. A FILE_TRAVERSEhozzáférési jog a BYPASS_TRAVERSE_CHECKINGjogosultság felhasználóktól való eltávolításával kényszeríthető. Ez általános esetben nem ajánlott, mivel számos program nem kezeli megfelelően a könyvtárbejárási hibákat. A címtárakhoz való hozzáférés FILE_TRAVERSE elsődleges célja, hogy lehetővé tegye bizonyos IEEE- és ISO POSIX-szabványoknak való megfelelést, ha a Unix-rendszerekkel való együttműködés követelmény.

A Windows biztonsági modell lehetővé teszi a gyermekkönyvtárak számára, hogy örököljenek vagy ne örököljenek egy vagy több ACL-t a szülőkönyvtár biztonsági leírójában. Minden ACE olyan információt tartalmaz, amely meghatározza, hogyan örökölhető, és hogy hatással lesz-e az öröklő könyvtárobjektumra. Egyes örökölt ACE-k például az örökölt címtárobjektumhoz való hozzáférést szabályozzák, és ezeket hatékony hozzáférés-vezérlésinevezik. Az összes többi ACE-t csak öröklő ACE-neknevezik.

A Windows biztonsági modell az ACE öröklési szabályainak szerint a gyermekobjektumokra is kikényszeríti az ACES automatikus öröklését. Ez az automatikus öröklés, valamint az egyes ACE-ekben található öröklési adatok határozzák meg, hogy a biztonsági korlátozások hogyan lesznek átadva a címtárhierarchiában.

Vegye figyelembe, hogy nem használhat hozzáférés-megtagadási ÁSZ-t, ha csak GENERIC_READ vagy csak GENERIC_WRITE hozzáférést tilt egy fájlhoz. Ennek az az oka, hogy a fájlobjektumok esetében a GENERIC_READ vagy GENERIC_WRITE általános leképezései tartalmazzák a SZINKRONIZÁLÁS hozzáférési jogot. Ha egy ACE megtagadja GENERIC_WRITE hozzáférést egy megbízhatóhoz, és a megbízható GENERIC_READ hozzáférést kér, a kérés meghiúsul, mert a kérés implicit módon magában foglalja SZINKRONIZÁL hozzáférést, amelyet az ACE implicit módon megtagad, és fordítva. A hozzáférés-megtagadott hozzáférésű hozzáférés-vezérlési jogosultságok használata helyett használja a hozzáférés által engedélyezett ACE-eket az engedélyezett hozzáférési jogosultságok explicit engedélyezéséhez.

A tárolóobjektumokhoz való hozzáférés kezelésének másik módja a titkosítás. A fájlrendszertitkosítás windowsos implementációja a titkosított fájlrendszer vagy az EFS. Az EFS csak fájlokat titkosít, könyvtárakat nem. A titkosítás előnye, hogy további védelmet nyújt az adathordozón és nem a fájlrendszeren és a windowsos hozzáférés-vezérlési architektúrán keresztül alkalmazott fájlok számára. További információ a fájltitkosításról: Fájltitkosítás.

A legtöbb esetben a fájl- vagy könyvtárobjektumok biztonsági beállításainak olvasása és írása a kernel módú folyamatokra korlátozódik. Egyértelmű, hogy nem szeretné, hogy a felhasználói folyamatok módosíthassák a privát fájl vagy könyvtár tulajdonjogát vagy hozzáférési korlátozását. A biztonsági mentési alkalmazás azonban nem tudja elvégezni a fájl biztonsági mentésével kapcsolatos feladatát, ha a fájlra vagy könyvtárra vonatkozó hozzáférési korlátozások nem teszik lehetővé az alkalmazás felhasználói módú folyamatának olvasását. A biztonsági mentési alkalmazásoknak felül kell tudniuk bírálni a fájl- és könyvtárobjektumok biztonsági beállításait a teljes biztonsági mentés biztosításához. Hasonlóképpen, ha egy biztonsági mentési alkalmazás megkísérli a fájl biztonsági másolatának megírását a lemezen lévő példányon keresztül, és explicit módon megtagadja az írási jogosultságokat a biztonsági mentési alkalmazás folyamatához, a visszaállítási művelet nem fejezhető be. Ebben az esetben a biztonsági mentési alkalmazásnak képesnek kell lennie felülbírálni a fájl hozzáférés-vezérlési beállításait.

A SE_BACKUP_NAME és SE_RESTORE_NAME hozzáférési jogosultságok kifejezetten azért lettek létrehozva, hogy lehetővé teszik az alkalmazások biztonsági mentését. Ha ezeket a jogosultságokat a biztonsági mentési alkalmazás hozzáférési jogkivonatában adták meg és engedélyezték, meghívhatja CreateFile, hogy nyissa meg a fájlt vagy könyvtárat biztonsági mentéshez, és a standard READ_CONTROL hozzáférési jogot adja meg a dwDesiredAccess paraméter értékeként. A hívási folyamat biztonsági mentési folyamatként való azonosításához azonban a CreateFile hívásának tartalmaznia kell a FILE_FLAG_BACKUP_SEMANTICS jelzőt a dwFlagsAndAttributes paraméterben. A függvényhívás teljes szintaxisa a következő:

HANDLE hFile = CreateFile( fileName,                   // lpFileName
                           READ_CONTROL,               // dwDesiredAccess
                           0,                          // dwShareMode
                           NULL,                       // lpSecurityAttributes
                           OPEN_EXISTING,              // dwCreationDisposition
                           FILE_FLAG_BACKUP_SEMANTICS, // dwFlagsAndAttributes
                           NULL );                     // hTemplateFile

Ez lehetővé teszi, hogy a biztonsági mentési alkalmazás megnyissa a fájlt, és felülbírálja a szabványos biztonsági ellenőrzést. A fájl visszaállításához a biztonsági mentési alkalmazás a következő CreateFile hívásszintaxisát használja a fájl írandó fájl megnyitásakor.

HANDLE hFile = CreateFile( fileName,                   // lpFileName
                           WRITE_OWNER | WRITE_DAC,    // dwDesiredAccess
                           0,                          // dwShareMode
                           NULL,                       // lpSecurityAttributes
                           CREATE_ALWAYS,              // dwCreationDisposition
                           FILE_FLAG_BACKUP_SEMANTICS, // dwFlagsAndAttributes
                           NULL );                     // hTemplateFile

Vannak olyan helyzetek, amikor egy biztonsági mentési alkalmazásnak képesnek kell lennie módosítani egy fájl vagy könyvtár hozzáférés-vezérlési beállításait. Ilyen például, ha egy fájl vagy könyvtár lemezen rezidens példányának hozzáférés-vezérlési beállításai eltérnek a biztonsági másolattól. Ez akkor fordul elő, ha ezek a beállítások a fájl vagy a könyvtár biztonsági mentése után módosulnak, vagy sérültek.

A CreateFilehívásában megadott FILE_FLAG_BACKUP_SEMANTICS jelző engedélyezi a biztonsági mentési alkalmazás folyamatának a fájl vagy könyvtár hozzáférés-vezérlési beállításainak olvasását. Ezzel az engedéllyel a biztonsági mentési alkalmazás folyamata meghívhatja GetKernelObjectSecurity és SetKernelObjectSecurity olvasásához, majd alaphelyzetbe állíthatja a hozzáférés-vezérlési beállításokat.

Ha egy biztonsági mentési alkalmazásnak hozzáféréssel kell rendelkeznie a rendszerszintű hozzáférés-vezérlési beállításokhoz, a ACCESS_SYSTEM_SECURITY jelzőt a dwDesiredAccess paraméterértékben kell megadni, amelyet CreateFile.

A biztonsági mentési alkalmazások meghívják BackupRead, hogy beolvassák a visszaállítási művelethez megadott fájlokat és könyvtárakat, és BackupWrite írni őket.

standard hozzáférési jogosultságok