Bezpečnosť > Nezaradené
Creator / Owner vs. Owner Rights
Zápasíte aj vy s právami Creator / Owner ? Windows Vista a novšie ponúkajú riešenie ... Operačný systém Windows používa pri riadení prístupu k objektom nielen nadefinované oprávnenia, teda záznamy explicitne uvedené na tzv. ACL - Access Control List, ale existuje tu aj inštitút Creator / Owner. Táto špeciálna systémová identita má implicitne nadefinované práva Read Permissions (READ_CONTROL) a Change Permissions (WRITE_DAC). V praxi to potom znamená, že hoci bežnému užívateľovi nadefinujete len obmedzené práva, tento užívateľ, ak je Creator (=autor, teda "vytvoriteľ" daného súboru) alebo Owner (=majiteľ - každý autor je samozrejme aj majiteľ, ale vlastníctvo môže člen lokálnej skupiny Administrators zmeniť), môže on sám, bežný užívateľ, meniť oprávnenia prístupu k danému objektu. Nepomôže ani explicitne pridelené právo DENY na Read Permissions a Change Permissions - Creator / Owner v tejto situácii "prebíja" aj priamo pridelený zákaz. Tento prístup neplatí len pre súborový systém, ale všade tam, kde majú objekty svoj ACL a prístup k nim je riadený prostredníctvom pridelených práv (napríklad aj objekty v Active Directory). Mnohí administrátori sa preto sťažovali, že ak chcú užívateľovi SKUTOČNE odoprieť prístup k objektu, nestačí len odobrať práva, ale je nutné odobrať aj vlastníctvo. To často nie je jednoduchý úkon, a niekedy priam až nežiaduci krok - veď vlastníctvo súboru sa uvažuje aj pri iných službách, napr. pri NTFS kvóte, pri sledovaní pôvodu súborov a pod.
Microsoft na túto problematiku zareagoval vytvorením nového subjektu s názvom OWNER_RIGHTS (SID S-1-3-4). Tento subjekt ale poznajú len operačné systémy Windows Vista a novšie - inými slovami, nie je použiteľný pre Windows XP alebo Windows Server 2003.
V praxi to potom znamená, že ak má objekt vo svojom ACL (presnejšie v svojom DACL, teda v tej časti ACL, ktorú nazývame Discretionary Access Control List) uvedený tento nový SID, a tento objekt (napr. súbor na pevnom disku) sa nachádza v novom operačnom systéme (teda Windows Vista alebo novšom), tento operačný systém ignoruje oprávnenia člena Creator / Owner skupiny a riadi sa právami definovanými pre Owner Rights subjekt.
Ak teda do DACL súboru vložím skupinu Owner Rights a nedám jej žiadne práva (tým nemyslím, že jej definujem práva DENY - to nie, skrátka tomuto SIDu nepridelím žiadne práva, teda ani ALLOW, ani DENY), tak operačný systém bude ignorovať právo člena Creator / Owner skupiny na Read Permissions a Change Permission a namiesto toho odoprie majiteľovi akýkoľvek prístup k objektu.
POZOR - ak má užívateľ práva na objekt prostredníctvom akéhokoľvek iného SIDu uvedeného v DACL objektu, samozrejme tieto práva mu zostávajú - subjekt OWNER_RIGHTS slúži IBA na potlačenie práv toho, kto je autor alebo majiteľ (teda Cretor / Owner) objektu.
Taktiež je potrebné si uvedomiť, že tento nový SID poznajú len nové operačné systémy - teda Windows Vista a novšie. Čiže ak používam napríklad Windows 7 ako klienta a Windows Server 2003 ako súborový server, tak ani priamo na serveri, ani z Windows 7 neviem tento SID subjektu OWNER_RIGHTS zapísať do DACL súborov nachádzajúcich sa na Windows Server 2003 (v zdieľaných priečinkoch). Aj keď by ste ho tam možno preniesli pomocou nástroja robocopy.exe /copy:, alebo nástrojom icacls.exe (icacls.exe /save na export DACL z objektu na Windows 7, na serveri potom icacls.exe /restore na "obnovu" DACL), i tak by nevideli žiadny efekt. Je potrebné si uvedomiť, že tento SID starší operačný systém (konkrétne jeho LSA - Local Security Authority) nepozná a teda nevie uplatniť.
Boris.
|