A felhasználói fiókok
Az esetek nagyrészében egy felhasználói fiók (user account) egy valós személyt, egy - a rendszergazda vagy az erre a feladatra delegált személy által létrehozott - bizonyos jogkörrel felruházott felhasználót jelöl, aki ennek a jogkörnek a hatókörén belül jogosult a tartomány erőforrásait használni. Az esetek maradék részében a fiók az operációs rendszer (pl. a krbtgt vagy a Guest fiók) vagy egy kiszolgáló alkalmazás szolgáltatásához (pl. az IUSR_számítógépnév fiók az IIS névtelen felhasználójaként vagy a TsInternetUser a böngészőből elérhető terminálszolgatásokhoz) van kötve és többnyire automatikusan jön létre az operációs rendszer vagy az alkalmazás telepítésekor.
Ezenkívül más szempontok alapján is csoportosíthatjuk a felhasználói fiókokat, pl. a hatókör alapján léteznek helyi (local) vagy tartományi (domain) felhasználók. A helyi felhasználók érvényességi hatóköre a konkrét gép, ezért csak az adott számítógépre vonatkozó engedélyek és jogosultságok rendelhetők hozzájuk és csak a helyi gépbe jelentkezhetnek be. A kapcsolódó beállítások és adatok is a helyi gépen, pl. a Document and Settings mappában, a speciális adatok (pl. a csoporttagság vagy a jelszó ) szintén helyben, a SAM-ban (Security Accounts Manager = biztonsági fiókkezelő adatbázis) vannak. Más a helyzet a tartományi felhasználókkal, mert az ilyen csoportba tartozó fiók tulajdonosa a tartományba tartozó összes számítógépen is beléphet, a tartomány összes erőforrásához kaphat jogosultságot. Adatai, beállításai a valószinűsíthetően több gépen való bejelentkezés miatt egy központi helyen tárolódnak, és az érzékeny, speciális paramétereket (pl. a jelszó) a címtáradatbázis tartalmazza.
Továbbmenve azt is észrevehetjük, hogy akár egy Windows Server 2003 operációs rendszert futtató szimpla kiszolgálót, akár egy tartományvezérlőt telepítünk, mindig lesznek alapértelmezett (gyári vagy beépített) fiókok. A Windows Server 2003-ban a már ismerős Administrator (Rendszergazda = minden jogosultság és engedély birtokosa és kiosztója), és a Guest (Vendég = nagyon erősen korlátozott jogú) mellett megjelent egy új, SUPPORT_xxxxxxxx nevű (magyarul talán Segítségnyújtó fióknak fordítható) fiók, amely a Remote Assistence (Távsegítség) szolgáltatás használatához lehet szükséges. Ez a három fiók helyi gepek és tartomány esetében egyaránt megtalálható, tartomány esetén rendelkezésre áll még egy beépített fiók, a korábban említett kbrtgt nevű rendszerfiók, amely a KDC (a Kerberos hitelesítéshez szükséges Key Distribution Center) szervíz gyári fiókja. A Windows Server 2003-ban alapértelmezés szerint a Guest, a SUPPORT_xxxxxxxx és a krbtgt fiók le van tiltva.
A SID-ek
Egy biztos, akármilyen és akárhonnan is származik egyegy fiók, biztonsági azonosítóval (SID = Security IDentifier) rendelkeznie kell. Ezt az azonosítót az objektumok (mert ugyanez a helyzet a számítógépfiókok és a csoportok esetében is) létrehozásakor generálja az operációs rendszer és egy eltérő hosszúságú számsort jelent, pl. S152118543425382069670511229803721500. A számsor két részből áll: a tartományi csoportazonosítóból (a példában a S1521 és a végén az 500 ez konkrétan a Domain Admins csoport) és a relatív azonosítóból (a maradék), amelyet a korábban említett RID master szerepet betöltő DC oszt ki.
Néhány közismert (well-known), azaz minden rendszerben azonos SID első számjegyei:
- Névtelen bejelentkezés (S-1-5-7)
- Hitelesített felhasználók (S-1-5-11)
- Rendszergazda (S-1-5-domain-500)
- Vendég (S-1-5-domain-501)
- Telefonos (S-1-5-1)
- Mindenki (S-1-1-0)
- Interaktív (S-1-5-4)
- Helyi rendszer (S-1-5-18)
- Hálózat (S-1-5-2)
- Szolgáltatás (S-1-5-6)
- Terminálkiszolgáló felhasználója (S-1-5-13)
- Rendszergazdák csoport (S-1-5-32-544)
- Kiemelt felhasználók csoport (S-1-5-32-547)
- Biztonságimásolat-felelősök csoport (S-1-5-32-551)
- Felhasználók csoport (S-1-5-32-545)
A biztonsági azonosító azért lényeges, mert az operációs rendszer belső folyamatai nem a felhasználó nevére, hanem erre az azonosítóra hivatkoznak. Ha a felhasználó egy hálózati erőforráshoz (mondjuk egy megosztáshoz) akar hozzáférni akkor a felhasználó bejelentkezésekor létrejött, a SID-et is tartalmazó hozzáférési "igazolást" (access tokent) küldi el, a kéréssel együtt. Így a megosztást tartalmazó gép fájlrendszere a SID-et összehasonlítja a megosztás hozzáférésengedélyezési listájában (ACL: Access Control List) szereplőkkel és ha van ilyen SID ebben a listában, akkor az ennek megfelelő engedélyeket a felhasználó megkapja. Mivel ez az azonosító az egész erdőben egyedi és (elvileg) megismételhetetlen, ezért abban az esetben ha törlünk egy felhasználói fiókot (és ezzel együtt a SID-jét is), majd később létrehozzuk ugyanazzal a névvel, az egyediség miatt a SID-je természetesen nem lesz (nem lehet) azonos az előzővel, így a jogosultságai, engedélyei is elvesznek mindörökre.
Gál Tamás
gtamas@tjszki.hu