Rekneme, ze chcete vyrobit v NetWare uzivatele. Spustite tedy SYSCON a vyrobite uzivatele. SYSCON tedy v bindery vyrobi object USER. Tento object dostane take property IDENTIFICATION (full name), PASSWORD (heslo), GROUPS_I'M_IN (...), LOGIN_CONTROL, SECURITY_EQUALS, ...atd. Aby se odlisily ruzne objekty od sebe (user, grp, printer), maji pridelena identifikacni cisla typu - uzivatel 0x1, group 0x2, file server 0x4; Dale ma kazdy objekt vlastni identifikacni cislo (long), ktere je v bindery vzdy jedinecne. Toto cislo je neco jako uid v unixu. Kazdy objekt a kazda property maji take informace o pravech r/w. Muzete nastavit prava All/Logged_in/User/Supervisor/Bindery_only. Prava u objektu znamenaji, zda je dany objekt videt a muzete cist jake ma properties. U jednotlivych properties pak zda muzete cist/modifikovat jejich obsah. Objekt/property s read All muze byt cten i kdyz neni user k serveru prilogovan. Read/Logged_in je myslim jasne, User znamena osobu, ktere ty properties/objekt patri, Supervisor je jasny a bindery only je neco ve smyslu "Nechci, aby administrator vedel, ze tady mam account". Vyuziti tohoto access prava je myslim jasne :-).Kazdy objekt muze byt bud' static, nebo dynamic. Static objekty jsou v bindery nastalo, dynamic se pri uzavirani bindery mazou. Do bindery muze zapisovat jen supervisor/server. Pokud jste na serveru, muzete si z bindery delat co chcete a s nejvyssimi moznymi pravy.
Vetsinou nevznikaji v bindery diry diky spatnym pravum cteni/zapis, nebot 99% adminu nema predstavu ze neco takoveho existuje a syscon velke boty nedela. Nejvice der udelaji do site crackeri. Obcas dela ale boty server, takze se cas od casu objevuji nedekodovana hesla v ruznych properties bindery, pokud mozno world readable. Zajimava chybka...
S bindery se taky velmi lehce pracuje. Doporucuji si stahnout z
developer.novell.com SDKcko pro DOS
a OS/2. V SDKcku najdete knihovny pro praci se siti, tedy vcetne bindery.
Vsechny funkce jsou v souboru nwbindry.h
. Neni snad treba zadne
dalsi vysvetleni. Snad bych se jeste mohl zastavit u funkci
OpenBindery()
a CloseBindery()
. Tyto dve funkce
umoznuji otevirat a zavirat $SUBJ (kupodivu). Pokud je bindery uzavrena, je
mozne z disku cist soubory s bindery. Jinak jsou tyto soubory uzamcene a nelze
s nimi pracovat. Tyto funkce muze volat pouze SUPERVISOR equivalent (resp. i
normalni uzivatel, ale neudelate to standardni cestou). Po dobu, kdy je
bindery uzavrena, neni mozne se na server prilogovat. Uzavreni bindery mimo
jine zpusobi pripadne odemceni konzole serveru (nelze verifikovat heslo
SUPERVISORA).
Jak je $SUBJ resen na urovni serveru? Cela bindery je ulozena v adresari
SYS:SYSTEM/
, konkretne v souborech NET$OBJ.SYS
,
NET$PROP.SYS
a NET$VAL.SYS
. Vyznam je jasny, ne?
Struktura techto souboru AFAIK nebyla nikdy firmou Novell zverejnena, ale je
jiz davno znama. Pro uplnost:
ObjectRecord=RECORD // NET$OBJ.SYS ObID :Longint; ObType :Word; ObName :String[47]; ObFlag :Byte; ObAccess :Byte; FirstProperty :Longint; Free :Longint; end; PropRecord=RECORD ID :Longint; Name :String[15]; Flag :Byte; Access :Byte; BackLink :Longint; Next :Longint; Value :Longint; end; ValRecord=RECORD ID :Longint; BackLink :Longint; Next :Longint; Segment :Word; value :array[0..127] of byte; end;Omlouvam se za ten pascal, ale nechce se mi hledat C verze :(. Zdrojak jsem si vypujcil z Bindery Scalpela. Scalpel (dale jen SC) je vyborny program na analyzu netwarovske site 3.x. Kde SC roste nevim, ale mohl by byt na hysterii, posilal jsem ho tam pajkovi. Co s nim ten udelal, to uz nevim. Na pokusy je dobre mit nejakou jiz existujici bindery, ve ktere je pokud mozno nekolik stovek objektu. Takoveto bindery (ne)ochotne poskytuje vetsina skol, staci si je jen stahnout. Popripade si muzete rict novellum a vyzebrat od nich NetWare demo 2 users. Pak si ovsem tu bindery musite vyrobit.
Zajimave to je u NetWare 4.x, kde bindery zastoupila NDSka (NetWare directory services). Tam je bindery emulovana, aby se bylo mozne na server prihlasit i ze starsich klientu. Pokud mate zajem podobne popsat i NDSku, poslete mi email. Doufam, ze se takovy zoufalec nenajde.