/etc/nwserv.conf
. Pokud si Mars
nainstalujete do Linuxu přímo z distribuce RedHatu, můžete kompilaci
vynechat, ale budete pravděpodobně muset projít jeho konfigurační
soubor, abyste Mars přizpůsobili svým požadavkům. Nejdůležitější sekce
se nacházejí na začátku konfiguračního souboru.
Článek o konfiguraci IPX v Linuxu je dostupný na adrese: http://www.spsselib.hiedu.cz/~kerslage/manuals/linux/IPX.html
Domácí stránka Marsu: | http://www.compu-art.de/download/mars_nwe.html |
Mirror: | http://ftp.spsselib.hiedu.cz/pub/mirrors/mars.www/ |
Použitá verze Marsu: | mars_nwe-0.99.pl8.tgz |
make
poprvé, vytvoří se soubory
config.h
a mk.li
, které můžeme upravit dle
svých požadavků. Upravit bude nejspíše nutné poslední dva řádky
v souboru config.h
:
#define SHADOW_PWD 0 #define QUOTA_SUPPORT 0Pokud používáme ve svém systému shadow password nebo quotu, změníme nulu v příslušném řádku na jedničku. V některých rozlehlých sítích, kde je v síti více serverů, bude potřeba přeložit Mars s upravenou řádkou v souboru
net.h
:
#define MAX_SERVER_NAME 48
Dalším make
Mars zkompilujeme, pak nainstalujeme, upravíme
konfigurační soubor /etc/nwserv.conf
a můžeme ho spustit.
Vysvětlení obsahu konfiguračního souboru najdete v následujících
odstavcích.
tar xzf mars_nwe-0.99.pl8.tgz cd mars_nwe make [editace config.h a mk.li] make make install make install_ini [pokud chceme přepsat starý /etc/nwserv.conf] [editace /etc/nwserv.conf]
/etc/nwserv.conf
, jehož struktura je popsána v další
kapitole. Vlastní start serveru zajistíme zadáním příkazu:
nwservEmulátor NetWare serveru se spustí, projde svůj konfigurační soubor, nastaví podle něj síťová rozhraní, aktivuje vnitřní IPX router a začne se do sítě ohlašovat pomocí protokolů SAP a RIP. Od tohoto okamžiku je možné se k němu přihlásit. Úspěšný start serveru můžeme zkontrolovat pomocí následujících příkazů (cesty k logům je možné předefinovat v konfiguračním souboru):
cat /proc/net/ipx_interface cat /proc/net/ipx_route cat /var/log/nw.log cat /var/log/nw.routesNejčastější problémy jsou s nastavením IPX rozhraní. Pokud Mars neběží tak, jak má, bude problém s největší pravděpodobností zde. Zkotrolujte zejména sekce 3 a 4 konfiguračního souboru a pokud problémy přetrvávají, obraťte se na svého síťového administrátora.
Při změně konfiguračního souboru až po startu systému je potřeba dát Marsu najevo, že si má konfigurační soubor znovu přečíst. Nejjednodušeji to lze provést zadáním příkazu:
nwserv -hMars znovu načte svůj konfigurační soubor bez toho, aby byli právě připojení uživatelé odpojeni. Pokud si přejete Mars ukončit, použijte příkaz:
nwserv -kServer oznámí všem připojeným uživatelům pomocí broadcastů ukončení své činnosti, odpojí je a skončí. Rychlost, s jakou dojde k zastavení serveru a zasílání zpráv uživatelům můžete nastavit v konfiguračním souboru.
/etc/nwserv.conf
.
Je poměrně obsáhlý, dobře komentovaný v angličtině a má jednoduchou
strukturu. Kromě komentářů uvozených znakem #
obsahuje
mnoho sekcí, které se liší významem i parametry. Každý řádek musí
začínat číslem sekce, prázdné řádky jsou nevýznamné. Některé sekce mohou
mít řádků několik (vždy znovu uvozené číslem sekce), jiné jen jeden a v
případě, že chybí úplně, použijí se standardní hodnoty určené před
kompilací (pokud je to možné). Oddělovačem v souboru mohou být mezery i
tabelátory. Následující text se týká konfiguračního souboru pro
mars_nwe-0.99.pl8
.
1 jméno_svazku adresář [volby] [umaskdir umaskfile]První definovaný svazek musí mít název
SYS
a měl by
obsahovat adresáře LOGIN, PUBLIC, SYSTEM, MAIL
. Další
případné řádky mohou definovat další svazky, ale pozor na maximální
možný počet svazků nastavený před kompilací v souboru
config.h
nebo v sekci 61 tohoto konfiguračního souboru.
Jméno_svazku může mít maximálně 8 znaků a určuje, který adresář bude jeho vrcholem.
Volby u jednotlivých svazků mohou být kombinovány (bez mezer) a umožňují upřesnit, jak bude se soubory na svazku nakládáno. Bez uvedení voleb uvidí uživatelé jen soubory se jmény s velkými písmeny a číslicemi ve formátu 8+3.
Volba | Význam |
---|---|
- | znak bez významu |
i | ignorování velkých/malých písmenek, je to velmi pomalé a mělo by to být používáno jen při skutečné nezbytnosti |
k | používat malá písmenka u jmen, jestliže nepoužijete tuto volbu ani volbu i, všechna jména musí být velkými písmeny |
m | výměnitelné svazky (CD-ROM) nebo svazky, které chcete odpojovat během činnosti Marsu |
n | svazek bez inodů, tj. DOS-svazky, CD-ROM, ... důležité pro maniulaci s atributy a přístupovými právy |
r | svazek jen pro čtení, ohlašuje 0 volných bytů |
o | pro svazky s více jak 0xFFFFFFF inody (malé o) |
p | PIPE-svazek (komentář pod tabulkou) |
O | OS/2 namespace - dlouhá jména i pro Windows'95 po aplikaci opravy do registrační databáze (velké O) Ve Windows'95 je potřeba upravit registry. |
N | NFS namespace - zatím experimentální |
Pokud chcete ve Windows'95 používat dlouhá jména, je potřeba
provést následující úpravu v registrační databázi.
Nejjednodušeji to můžete provést tak, že tento úsek
uložíte do souboru s příponou .reg
a na ten
pak ve Windows'95 kliknete. Nezapomeňte Windows restartovat a
upravit také sekci 6!
REGEDIT4 [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\NWREDIR] "SupportLFN"=hex:02
Volba p označuje speciální svazek, který obsahuje programy spustitelné v Linuxu. Pokud klient (např. DOS stanice) začne číst ze souboru umístěném na tomto svazku, Mars spustí tento soubor (program) a jako parametr mu předá READ. Standardní výstup tohoto programu je předán klientovi, jako by to byl obsah čteného souboru. Při otevření souboru pro zápis je předán programu parametr WRITE a vstup je přesměrován na standardní vstup spuštěného programu. Podobně funguje operace vytváření souboru, která předává programu parametr CREAT.
Následující jednoduchý skript se bude chovat tak, že pokud z něj začneme v DOSu (resp. na připojené stanici) číst, přečteme tarový soubor, který bude obsahovat zálohu domácího adresáře uživatele Hužva na Linuxu. Pokud naopak budeme něco do tohoto souboru zapisovat, dojde k přepsání Linuxového domácího adresáře Hužvy archívem, který do souboru zapisujeme.
#!/bin/sh case "$1" in 'CREAT') ;; 'WRITE') # přepiš adresář Hužvy zálohou cd /home/huzva && tar xf - 2>> /tmp/zaloha.obnoveni ;; 'READ') # vytvoř zálohu domácího adresáře Hužvy cd /home/huzva && tar cf - * 2> /dev/null ;; *) ;; esacTato vlastnost se dá využít kromě zálohování třeba na jednoduché posílání faxů nebo pošty. Na další možnosti jistě přijdete sami.
umaskdir umaskfile jsou oktalová čísla užívaná při vytváření adresářů a souborů, předefinovávají hodnoty pro jednotlivé svazky ze sekce 9. Pokud uvedeme 0, je použita standardní umask, -1 způsobí přebírání módu dle rodičovského adresáře.
1 SYS /var/local/nwe/SYS k 1 CDROM /cdrom kmnor 1 HOME ~ k -1 1 HOMETMP ~/tmp kiO 1 PRIVAT ~/privat kO 700 600 1 WORLD /var/world kiO 777 666Znak
~
zastupuje domácí adresář příslušného přihlášeného
uživatele, což je velice sympatický rys, který určitě využijeme. Pokud
použijeme řádku se svazkem HOME z příkladu nahoře, můžeme v login
skriptu provést mapování MAP H:=HOME:
, kterým se namapuje
na disk H: každému přihlašujícímu se uživateli jeho vlastní domácí
adresář.
slist
.
2 MONKEY
3 auto
4 číslo_sítě zařízení rámec [TICKS]Zařízení je jméno síťového rozhraní (např.
eth0
). Rámec může být
ethernet_ii, 802.2, 802.3, snap, token, auto
.
4 0x12 eth0 ethernet_ii 1 4 0x13 eth0 802.3 1Automatická detekce je možná stejně jako je posáno v kapitole o IPX v Linuxu. Lze detekovat jak čísla sítí (uvedeme nulu), tak typy rámců (uvedeme klíčové slovo
auto
a to znamená, že rozhraní mohou
být přidávána a odebírána za běhu dle situace na síti). Hvězdička na
místě zařízení znamená všechna síťová rozhraní.
4 0x0 * auto 1Zatím není možné nakonfigurovat rozhraní předem a přinutit Mars, aby je ponechal. V příští verzi by to už mělo být možné.
Příznak | Význam |
---|---|
0x1 | Neodstraňovat z IPX routovací tabulky řádky, které byly přidány vnitřním routerem Marsu. Pokud není uveden, všechny přidané řádky budou při ukončení Marsu odstraněny (default) |
0x2 | Pokud máte problémy s automatickou detekcí (Win95), zkuste tento přepínač. Měl by být použit jen na začátku nebo při testování. |
0x4 | Při ukončení Marsu odstranit všechna IPX zařízení a vyprázdnit routovací tabuku. |
ENABLE_BURSTMODE
na 1 v souboru config.h
.
Tento režim však má zatím chyby a je zatím určen jen k experimentování.
6 1 0x0
LOGIN.EXE,
SYSCON.EXE, SETPASS.EXE
), může být heslo kódováno při jeho
přepravě po síti. Tato sekce určuje, jak se ke kódováni Mars bude
stavět. Tato sekce ovlivňuje pouze kódování při přenosu hesla ze stanice
k serveru, server heslo ukládá VŽDY v zakódované podobě.
7 hodnota
Hodnota | Význam |
---|---|
0 | požadovat po klientovi kryptování vždy (default) |
1 | jako 0, při změně hesla se povoluje používání i nezakódovaných |
7 | umožnit používání nezakódovaných, ale nikoliv prázdných hesel |
8 | umožnit používání nezakódovaných i prázdných hesel |
9 | používat výhradně nezakódovaná hesla, použití zakódovaných je zakázáno (zakódovaná hesla nemusí fungovat se všemi klienty - např. OS2/client) |
Příznak | Význam |
---|---|
0x1 | povolit změnu souborů i mimo adresář LOGIN ,
když uživatel není přihlášen a klient to podporuje
|
0x2 | je možné otevírat soubory pro zápis, i když jsou pro uživatele jen ke čtení (readonly) |
0x4 | povolit přejmenovávání adresářů (NCP funkce 0x45) |
0x8 | ignorovat restrikce na stanici a dobu přihlášení pro uživatele SUPERVISOR |
0x10 | povolit smazání souboru, i když jej má otevřen jiný uživatel |
0x20 | ukládat informace o souborech, normálně jsou ukládány informace pouze o adresářích. Nezbytné při používání ncpfs jako klienta Marsu (ke sdílení disků mezi Linuxy je určitě lepší použít NFS!!!) |
0x40 | limitovat hlášení volného místa na svazku na 2GB (nutné pro některé klienty) |
9 0755 0664
LOGIN
, ale ještě není přihlášen.
Tento uživatel a skupina by měl mít v adresáři LOGIN
pouze
práva čtení, abychom nenarušovali bezpečnost našeho serveru. Ve většině
Linuxů je k tomuto účelu vyhražen uživatel a skupina
nobody. Hodnoty jsou čísla, nikoliv jména!
10 65534 11 65534
12 Mars_uživatel Linux_uživatel hesloUživatel definovaný v této sekci má v Marsu interní číslo 1 na rozdíl od uživatelů ze sekce 13, kde získá zcela náhodné číslo. Můžeme sice nadefinovat v sekci 13 uživatele se jménem supervisor, avšak bude postaven na roveň ostatním běžným uživatelům a nebude mít administrátorská oprávnění. Administrátora pro Mars je nutné definovat v této speciální sekci a jeho jméno je libovolné. Pokud uvedeme například místo jména supervisor jméno root, nestane se nic zvláštního kromě toho, že porušíme zavedenou tradici ve světě NetWare.
Heslo je potřebné jen při prvním startu systému nebo v případě, že chceme administrátorovi heslo změnit. Proto ho po prvním spuštění z bezpečnostních důvodů odstraňte. Pokud neuvedeme heslo při prvním startu Marsu, bude účet administrátora nepřístupný. Mars zkrátka neumožňuje v této sekci nadefinovat administrátora bez hesla a v případě, že heslo chybí, nechává bidery databázi beze změny. Heslo je v bidery databázi uvedeno v zašifrované podobě.
13 Mars_uživatel Linux_uživatel [heslo] [volby]Pokud místo
hesla
uvedeme znaménko mínus -
,
znamená to, že uživatel nemá heslo (to je rozdíl oproti sekci 12).
Jediná volba
, kterou lze v současné době využít, je hodnota
0x1, která zakazuje uživateli měnit si své vlastní heslo (vhodné
například pro anonymní účty).
13 HOST nobody - 0x1
Tuto sekci je také možné využít ke změně hesla uživateli bez toho,
abychom se museli přihlašovat jako administrátor do Marsu. Aby se změna
promítla do bindery databáze, je potřeba buď příkazem
nwserv -h
nechat Mars znovu přečíst konfigurační
soubor nebo Mars restartovat.
Zrušit uživatele může pouze administrátor pomocí NCP
služeb NetWare buď programem syscon
od Novellu nebo jinou
volně šířenou jednoúčelovou utilitou.
/etc/passwd
. Tato sekce není příliš bezpečná a
bezproblémová hlavně proto, že všechny nové účty budou mít stejné heslo.
Pokud chcete zabránit zneužívání účtů nově založených uživatelů na svém
serveru, je lepší nastavit nově zavedeným uživatelům jiná a hlavně různá
hesla. Ještě vhodnější je ruční zakládání účtů pomocí již zmíněné sekce
13.
Aby nové účty byly zavedeny do bindery databáze, je potřeba buď příkazem
nwserv -h
nechat Mars znovu přečíst konfigurační soubor
nebo jej restartovat. Mars nevytvoří účty uživatelům, kteří mají místo
hesla v Linuxu znak x
nebo *
(zamčené účty) nebo
mají UID menší než 100.
15 volba heslo
Heslo
je nastaveno všem nově vytvořeným uživatelům, řídí se
stejnými pravidly, jako v sekci 12. Možné volby
jsou
uvedeny v následující tabulce:
Volba | Význam |
---|---|
0 | NEvytvářet automaticky nové účty |
1 | vytvářet nové účty a každému novému přiřadit heslo nadefinované v této sekci |
99 | znovu vytvořit a přepsat všechny účty v bidery databázi
dle současného stavu souboru /etc/passwd
včetně přiřazení hesla dle této sekce
|
SYS:LOGIN,
SYS:MAIL, SYS:MAIL/XXX, SYS:PUBLIC, SYS:SYSTEM, ...
a samozřejmě
zkontroluje přístupová práva do těchto adresářů. Tuto činnost byste měli
povolit zejména při přechodu na novou verzi Marsu. Pokud ji necháte
zapnutou trvale, nemusíte se obávat viditelného zpomalení činnosti
Marsu, protože kontroly zaberou jen minimum času při jeho startu.
Volba | Význam |
---|---|
0 | žádné testy |
1 | základní testy |
2 | jako 1 + kontrola a komprese bidery databáze |
Zajímavá a užitečná vlastnost je, že Mars kromě vytvoření mailových
adresářů pro všechny uživatele vytvoří i adresář SYS:MAIL\USER
,
do kterého umisťuje linky s přihlašovcími jmény uživatelů. Tyto linky
ukazují do adresáře SYS:MAIL\%ID
příslušného uživatele.
Hodí se to v případě, že chceme zkontrolovat, jestli uživatel má v Marsu
účet nebo když se potřebujeme snadno dostat do mailového adresáře
nějakého uživatele. Ke vstupu do mailových adresářů samozřejmě potřebujeme
příslušná práva.
21 jméno_fronty [svazek:adresář] [příkaz]Jméno_fronty je jméno, pod kterým bude fronta přístupná ze stanice. Svazek:adresář je adresář (spool-dir), který musí před započetím tisku již existovat (Mars si jej umí v rámci testů při staru vytvořit), musí být umístěn na prvním definovaném svazku ze sekce 1 (obvykle
SYS:
) a zadává se ve tvaru, pod kterým
je přístupný ze stanice. Slouží k dočasnému uložení úlohy, která je
přijímána ze stanice a odtud je teprve předána příkazu
nebo tiskovému serveru. Pokud místo něj uvedeme znaménko mínus
-
, bude použito standardní jméno ve tvaru
SYS:SYSTEM\id_fronty.QDR
. Tento adresář nemá žádnou
spojitost s adresářem pro tiskové fronty v Linuxovém systému!
Příkaz je nepovinný parametr. Pokud není uveden,
tiskové úlohy se ukládají do výše zmíněného adresáře, odkud si je musí
vyzvednout nějaký NetWare tiskový server nebo jeho emulátor. Pokud ho
uvedeme, může sloužit k provedení nějaké činnosti s úlohou, která je
umístěna ve frontě nebo může dokonce odeslat úlohu přímo do tiskového
systému Linuxu. Uvedením znaku vykřičník !
jako posledního
parametru tohoto příkazu dosáhneme toho, že do tiskové úlohy jsou
zařazeny položky banner_user_name
a
banner_file_name
, které identifikují tiskovou úlohu a mohou
být dále zpracovány/vytisknuty.
21 LASER - lpr -Plaser 21 INKJETPrvní tisková fronta LASER je umístěná ve standardním adresáři a tiskové úlohy jsou předávány příkazem
lpr
do
místní Linuxové tiskové fronty laser. Příchozí úlohy
jsou vytištěny tiskovým systémem Linuxu a není je potřeba žádným dalším
způsobem zpracovávat. Druhá tisková fronta INKJET je
klasickou NW frontou. Příchozí úlohy jsou ukládány do standardního
adresáře a zde budou uloženy do té doby, než si je vyzvedne nějaký NW
tiskový server.
pserver
z balíku
ncpfs
. Tiskový_server a
fronta jsou jména odpovídající našemu přání. Tiskový
server je zařazen do bindery databáze.
22 tiskový_server jméno_fronty
30 max_buffer_pro_čtení max_buffer_pro_zápis
config.h
.
Sekce | Význam |
---|---|
40 | cache pro dlouhá jména (mapování inodů) = OS/2 namespace |
41 | adresář pro zámky souborů |
42 | interní spool adresář pro tiskové fronty |
45 | adresář, kde budou uloženy soubory s bindery databází |
46 | adresář pro atributy a přístupová práva |
40 /var/spool/nwserv/.volcache 41 /var/spool/nwserv/.locks 42 /var/spool/nwserv 45 /etc 46 /var/lib/nwserv/attrib
doc/README.NLS
v dokumentaci
k Marsu.
config.h
Sekce | Význam |
---|---|
60 | maximální možný počet současně připojených uživatelů (nepoužívejte číslo větší než 255) |
61 | maximální možný počet svazků v sekci 1 |
63 | maximální počet DIR_BASE_ENTRIES |
68 | pro čtení ze souborů používat funkci mmap
|
69 | zpracovávat všechny typy SAP nebo jen typ 4 |
70 | sériové číslo (4 byte) |
71 | číslo aplikace (2 byte) |
80 | maximální počet otevřených adresářů na jedno spojení |
100 0 # debug IPX KERNEL (0 | 1) 101 1 # debug NWSERV 102 0 # debug NCPSERV 103 0 # debug NWCONN 104 0 # debug (start) NWCLIENT, musí být vždy '0' ! 105 0 # debug NWBIND 106 1 # debug NWROUTED
nwserv
Sekce | Hodnoty | Význam |
---|---|---|
200 | 0 | žádné logování, nwserv se nestane démonem |
1 | logovat, nwserv pracuje jako démon | |
201 | syslog | logování přes syslogd
|
soubor s cestou | logování do uvedeného souboru | |
202 | 0x0 | přidávat k souboru |
0x1 | vytvořit nový soubor | |
0x2 | chybové hlášení nesměrovat do souboru, ale do syslogd |
Nwserv
bude pracovat jako démon, při každém
startu přemaže předchozí soubor s logy:
200 1 201 /var/log/nw.log 202 0x1
nwserv -h
je možno
nadefinovat časovou prodlevu, za kterou server skutečně skončí a v sekci
211 je možné definovat interval mezi broadcasty, kterými server
uživatelům oznamuje, že bude ukončen. Oba údaje se zadávají dekadicky ve
vteřinách. Hodnoty z příkladu zajistí, že server se korektně ukončí 10
vteřin po zaslání signálu a uživatelům bude zasláno jen jedno hlášení
oznamující ukončení činnosti serveru.
210 10 211 60
Sekce | Význam |
---|---|
300 | číslo větší než nula určuje, po kolika broadcastech jsou routovací informace zapsány do souboru (obvykle minuty) |
301 | jméno logovacího souboru /var/log/nw.routes
|
302 | 0x0 - přidávat do souboru 0x1 - vytvořit nový soubor 0x2 - rozložit informace do více souborů (přípony .1, .2, .3, ...) |
Každou minutu bude vytvořen nový soubor, kde budou uvedeny routovací informace:
300 1 301 /var/log/nw.routes 302 0x1
400 /etc/nwserv.stationsTento soubor má podobnou syntaxi, jako konfigurační soubor Marsu - na každém řádku je nejprve číslo sekce. Sekce číslo 1 je určena pro definice chování na žádost "Get nearest server", sekce druhá na restrikce připojení stanic. Pak následují údaje
net:node:socket
, kde net je
číslo sítě, node je MAC adresa stanice a
socket určuje číslo soketu, na který se záznam vztahuje.
Záznamy jsou hexadecimální a jsou podrobeny jen jednoduchému
porovnávání řetězců, proto dejte pozor na správnou syntaxi.
1 0.0.0.22:0.80.48.55.3f.33:50.3 # jeden speciální soket 1 0.0.0.22:0.80.48.55.3f.33:40.* # jeden speciální soket >= 0x4000 1 0.0.0.22:0.80.48.55.3f.32:* # jeden klient 1 0.0.0.22:0.80.48.55.3f.2?:* # klineti 20 až 29 1 0.0.0.21:* # jedna celá síť
401 hodnota
Hodnota | Význam |
---|---|
0 | ignorovat sekci 400, vždy povoleno |
1 | povoleno všem kromě stanic dle sekce 400 |
2 | zakázáno všem kromě stanic dle sekce 400 |
SYS:LOGIN
). Pro připojení
dalších disků je samozřejmě nutné, aby se uživatel ze stanice k Marsu
přihlásil. Pokud není na základě této sekce povoleno stanici se k Marsu
připojit, nemůže se uživatel z této stanice ani přihlásit.
402 hodnotaHodnota má stejný význam, jako v sekci 401.