Jak používat instreg.exe a instsvc.exe (nástroje příkazového řádku pro instalaci Firebirdu na Windows)
Jak používat instreg.exe a instsvc.exe
Autoři: Původní: Alex Peshkov (peshkoff at mail.ru), Revidoval: Olivier Mascia (om at tipgroup.com)
POZNÁMKA :: Pro vyřešení případných problémů s dlouhými cestami obsahujícími mezery nebo speciální (neascii) znaky tyto nástroje již nepřijímají RootDirectory jako argument příkazového řádku. Obě binární soubory musí být nainstalovány (nebo zkopírovány) do adresáře /bin pod vaším kořenovým adresářem Firebirdu.
(Kořenový adresář == kořenový adresář, kde jsou nainstalovány firebird.conf a security2.fdb.)
Například, pokud jsou umístěny v C:\FB20.in, kořenový adresář bude odvozen jako C:\FB20.
INSTREG.EXE
Účelem tohoto nástroje je instalovat klíče registru pro Firebird. Protože jeho úkolem je odvodit cestu RootDirectory jako adresář bezprostředně nad jeho vlastním umístěním a zapsat ji do registru jako absolutní cestu, instreg.exe musí být nainstalován v podadresáři /bin kořenového adresáře Firebirdu (viz poznámka výše).
Klíč registru *není* vyžadován pro běh enginu; nicméně mnoho nástrojů třetích stran očekává, že jej bude moci přečíst, aby fungovaly. Ukládaný klíč je
HKLM\SOFTWARE\Firebird Project\Firebird Server\Instances
a obsahuje jednu řetězcovou hodnotu: DefaultInstance.
Tato řetězcová hodnota ‘DefaultInstance’ obsahuje úplnou cestu (ukončenou zpětným lomítkem) ke kořenovému adresáři instalace. Toto nastavení je vytvořeno tak, aby správa pojmenovaných multi-instancí serveru byla možná v příští verzi. V současnosti jediná instance obdrží pevně zakódovaný název ‘DefaultInstance’. V registru není uloženo nic jiného. Jakékoli informace o verzi nebo konfiguraci najdou nástroje třetích stran v příslušném souboru firebird.conf. Tento soubor lze najít díky kořenové cestě uložené v hodnotě …\Instances\DefaultInstance.
Použití:
instreg i[nstall]
instreg r[emove]
‘-z’ lze použít s jakoukoli jinou volbou, vypíše verzi softwaru Firebird jako první řádek výstupu.
Pro získání stručné textové nápovědy stačí spustit instreg.exe bez argumentů.
INSTSVC.EXE
Firebird poskytuje standardní rutinu pro správu služby Firebird na platformách WinNT/2000/XP - instsvc.exe.
Konzolové zprávy
Výstup chybových zpráv systému Windows (pokud existují) byl vylepšen tak, aby byla provedena případná transliterace ansi řetězců do OEM znakové sady okna konzoly. To znamená, že lidé používající neanglický Windows dostanou systémové chybové zprávy Windows ve svém jazyce se správnými akcenty a podobně.
Funkce související se zabezpečením
Volba ‘-login’ (nebo -l) implementovaná dříve byla rozsáhle revidována a vylepšena. Nyní ji lze použít k nastavení služeb pro běh pod konkrétním uživatelským účtem (pravděpodobně s omezenými oprávněními v systému) namísto výchozího “LocalSystem”.
Použití:
instsvc i[nstall] [ -s[uperserver]* | -c[lassic] | -m[ultithreaded] ]
[ -a[uto]* | -d[emand] ]
[ -g[uardian] ]
[ -l[ogin] username [password] ]
[ -n[ame] instance ]
[ -i[nteractive] ]
instsvc sta[rt] [ -b[oostpriority] ] [ -n[ame] instance ]
instsvc sto[p] [ -n[ame] instance ]
instsvc q[uery]
instsvc r[emove] [ -n[ame] instance ]
Tento nástroj by měl být umístěn a spuštěn z adresáře ‘bin’ vaší instalace Firebirdu.
-
‘*’ označuje výchozí hodnoty
-
‘-z’ lze použít s jakoukoli jinou volbou, vypíše verzi
-
‘username’ se ve výchozím nastavení vztahuje na místní účet na tomto počítači.
-
Použijte formát ‘doména\uživatelské_jméno’ nebo ‘server\uživatelské_jméno’, pokud je to vhodné.
Příklady
za předpokladu, že je Firebird nainstalován (zkopírován do svého instalačního umístění).
Superserver a automatické spuštění jsou nyní výchozí.
instsvc i
instsvc install
nastaví Superserver jako službu v režimu automatického spuštění (spuštěnou při bootování) pod výchozí systémovou identitou, pojmenovanou “LocalSystem”.
instsvc i -g
instsvc install -guardian
jako výše, ale nejprve spustí službu Guardian.
Volby “-demand” (-d) a “-classic” (-c) umožňují změnit výchozí hodnoty, takže klasický server (namísto superserveru) lze nakonfigurovat jako službu a kteroukoli službu lze nakonfigurovat tak, aby se spouštěla na vyžádání namísto spouštění při bootování.
Pro odstranění služeb
Služby musí být před odstraněním zastaveny. To by mohlo být automatizováno 3 řádky kódu, ale z bezpečnostních důvodů je lepší to nechat tak, jak to je.
instsvc r
instsvc remove
odstraní definici služby. Pokud byl nakonfigurován Guardian, budou odstraněny služby guardianu i serveru.
Pro spuštění a zastavení nainstalovaných služeb
instsvc sta
instsvc start
spustí server nebo Guardian + server, podle toho, co bylo nakonfigurováno příkazem install.
instsvc stop
zastaví server nebo Guardian + server, podle toho, co bylo nakonfigurováno příkazem install.
Pro získání zprávy o stavu serveru
Toto je nový příkaz:
instsvc q
instsvc query
Vypíše zprávu o tom, *co* přesně je nakonfigurováno a *jak*, stejně jako to, zda služby běží nebo jsou zastaveny.
Pro použití funkce bezpečného přihlášení
Volba “-login” vyžaduje uživatelské jméno a heslo:
instsvc i -g -login user pass
Toto nakonfiguruje FB superserver jako automatické spuštění, s Guardianem, aby běžel pod identitou “user”, jehož heslo je pass.
\* Pokud je heslo zahrnuto, heslo by nemělo začínat znakem ‘-’.
\* Pokud je heslo vynecháno z příkazového řádku, instsvc se na něj zeptá. V tom případě bude heslo maskováno znakem ‘*’ při psaní.
Při konfiguraci služeb jako výše instsvc automaticky uděluje oprávnění operačního systému Windows s názvem “Log on as a Service” (Přihlásit se jako služba) zadanému uživateli. Toto je vyžadováno, jinak by služba nemohla být spuštěna. Instsvc o tom mlčí, pokud se to nezdaří.
Aby se postaral o možnost, že uživatel přihlašující se přes přepínač -login by mohl být běžný uživatel bez administrátorských oprávnění na počítači, instsvc upraví výchozí bezpečnostní deskriptor služeb tak, aby tento uživatel mohl služby spouštět/zastavovat/dotazovat se na ně.
To je nezbytné, aby Guardian (také běžící jako tento uživatel) mohl spustit FB server. Uživatel nebude moci odinstalovat služby ani změnit jejich konfiguraci.
POZNÁMKA
Instsvc NEVYTVÁŘÍ “uživatele” na počítači se systémem Windows. To by nebyl dobrý nápad. Správce může chtít vytvořit uživatele jako součást místního počítače nebo jako součást domény a instsvc nemá žádnou zvláštní potřebu usurpovat odpovědnost správce za vytváření uživatelů.
Uživatel potřebuje mít oprávnění ke čtení/zápisu ke všem databázím a souboru firebird.log. Z bezpečnostních důvodů by nemělo být uděleno oprávnění k zápisu do firebird.conf a spustitelných souborů Firebirdu.
Na Windows NT/2K/XP je běžné zahrnout předponu domény nebo serveru pro uživatele definovaného v doméně nebo lokálně na jiném serveru. Ve výše uvedených příkladech může mít “user” podobu:
DOMÉNA\user nebo
SERVER\user
Bez předpony je uživatel implicitně místním uživatelem na aktuálním počítači.