NCP utility

1.11.1998

Abychom mohli k Linuxu připojovat disky z NetWare (NW) serverů, tisknout na síťových tiskárnách a využívat dalších služeb nabízených NCP protokolem, potřebujeme NCP utility. Ty jsou součástí balíku ncpfs (NCP filesystem). Součástí poslední verze je i patch pro jádro, který přináší některá vylepšení. Jak je ve světě Unixu zvykem, několik jednoúčelových programů pokrývá základní požadované funkce. Aby byl popis utilit stravitelnější, rozdělil jsem je do několika skupin a jejich popisy jsem omezil na minimum (více napoví manuálové stránky). V dalších odstavcích popisuji práci s utilitami obsaženými v balíku ncpsf-2.0.12.8, na kterém intenzivně pracuje Petr Vandrovec.

V současné době je v Linuxu na velmi dobré úrovni podpora tzv. bindery databáze (NW 3.x). Podpora NDS je zatím v počátcích a vázne zejména na přístupu firmy Novell k tomuto problému. V každém případě je dnes buď možné na serverech verze 4.x zapnout emulaci bindery nebo použít stávající podporu NDS, která sice umožňuje připojovat disky z NW serveru, ale chybí utility pro manipulaci s NDS.

Pokud jsme připojeni k NW serveru, utility toto spojení používají. Jestliže při spuštění utility nejsme k žádnému serveru připojeni, utility se po spuštění nejprve přihlásí k NW serveru, pak provedou požadovanou činnost a na závěr se od serveru odpojí.

Kompilace a instalace balíku NCPFS

Balík NCPFS najdeme na URL: ftp://platan.vc.cvut.cz/pub/linux/ncpfs/

Pojídačům RPM balíků je třeba říct, že by bylo dobré nejprve odinstalovat současný balík a pak teprve kompilovat. Zkušenější uživatelé nebudou jistě mnoho rad potřebovat (nebo je naleznou na nějakém jiném místě).

    cd /usr/src
    tar xzf ncpfs-2.2.0.6.tgz
    cd ncpfs-2.2.0.6
    make
    make install

Kompilace jádra

Patchování jádra není nutné, nebudeme však mít k dispozici vylepšení uvedená za volbou NCP filesystem support.
    cd /usr/src
    tar xzf linux-2.0.34.tar.gz
    zcat ncpfs-2.0.12-kernel-2.0.34.gz | patch -s -p0
Při konfiguraci jádra nezapomeneme na podporu IPX protokolu a NCP filesystému, který umožňuje připojovat (mountovat) NW disky do našeho Linuxu. Samozřejmě zvolíme volby dle svého uvážení a potřeb.
    monkey:/usr/src/linux# make config
    [...]
    The IPX protocol (CONFIG_IPX) [Y/m/n/?]
    [...]
    NCP filesystem support (to mount NetWare volumes) (CONFIG_NCP_FS) [Y/m/n/?]
       Packet singatures (CONFIG_NCPFS_PACKET_SIGNING) [Y/n/?]
       Proprietary file locking (CONFIG_NCPFS_IOCTL_LOCKING) [N/y/?]
       Clear remove/delete inhibit when needed (CONFIG_NCPFS_STRONG) [N/y/?]
       Use NFS namespace if available (CONFIG_NCPFS_NFS_NS) [N/y/?]
       Use LONG (OS/2) namespace if available (CONFIG_NCPFS_OS2_NS) [N/y/?]
       Allow mounting of volume subdirectories (CONFIG_NCPFS_MOUNT_SUBDIR) [Y/n/?]
    [...]
    monkey~# make dep clean zImage modules modules_install
Signování paketů je obrana proti spoofingu. Spoofing je metoda zabývající se vyslání datagramu tak, aby se zdálo, že odešel z jiné stanice než ve skutečnosti (například jako z té, kde sedí SUPERVISOR). Automatické odstraňování atributu remove/delete inhibit slouží k tomu, aby Linux uměl smazat i soubor, který má nastaven atribut zákazu smazání/přejmenování. Atribut je před smazáním souboru odstraněn jen v případě, že je to potřeba. Podpora NFS a OS/2 namespace umožňuje přenos dlouhých jmen uložených na NW svazku do Linuxu. Poslední volba umožňuje připojování jen určeného podstromu (obdoba MAP ROOT) místo klasického způsobu, kdy jsou připojeny všechny svazky (volume).

Konfigurační soubor ~/.nwclient

Většina utilit využívá konfigurační soubor ~/.nwclient, který má uživatel ve svém domácím adresáři. V tomto souboru si můžeme předdefinovat servery, jména i hesla. Protože hesla jsou velmi citlivou záležitostí, musí být soubor čitelný jen pro vlastníka (chmod 600 ~/.nwclient), jinak s ním utility odmítnou pracovat. Záznamy v souboru se dělí na řádky s tímto pořadím údajů: Jméno_serveru/jméno_uživatele případné_heslo

Příklad souboru ~/.nwclient:

    # Osobní účet, raději bez hesla (heslo bude nutné vkládat pokaždé ručně)
    PRUM/RENE.HUZVA
    # Anonymní účet na serveru BIMBO, bez hesla
    BIMBO/GUEST -
    # Poloveřejný účet pro návštevy s heslem pižďuch
    PRUM/NAVSTEVA pizduch
Pokud takový soubor nemáme, je potřeba uvádět jméno serveru a uživatelské jméno na každé příkazové řádce.

Základní utility

Příkaz Popis příkazu Ekvivalent v NW 3.x
slist výpis známých NW serverů v síti slist
nwuserlist výpis uživatelů připojených k NW serveru userlist
nsend zasílání zpráv uživatelům send
ncopy NW file copy (v rámci jednoho serveru) ncopy
nwpasswd změna NW hesla setpass
nwfsinfo informace o NW serveru ???
ncpmount připojení disků z NW
ncpumount odpojení NW disků
Tab. 2: Základní utility

ncpmount a ncpumount

Tyto příkazy slouží k připojování a odpojování NW disku k Linuxu a jak jejich název napovídá, jsou to blízcí příbuzní známých příkazů mount a umount. Rozdílným pojetím systémů však nelze na připojených NW discích pracovat s NW přístupovými právy. Unixová práva a vlastníky lze jednotně nastavit pouze při připojování disku a to pro celý připojovaný strom.
    ncpmount -S server -U uživatel /home/huzva/novell
    ncpmount /home/huzva/novell
Při připojování je registrováno UID uživatele, který operaci provedl, a tak může připojování a odpojování provádět každý uživatel (pokud jsou obě utility SUID root), protože je mu dovoleno odpojit jen svá připojení. V následující tabulce jsou uvedeny parametry příkazové řádky, prvních pět je možné použít i u většiny ostatních utilit.

PřepínačPopis přepínačeImplicitní hodnota
-S server jméno připojovaného NW serveru první v .nwclient
-U uživatel jméno uživatele na NW serveru podle .nwclient
-b přihlášení k bindery přihlášení k NDS
-P heslo uživatelovo heslo podle .nwclient
-n uživatel nemá heslo podle .nwclient
-b připojit se v režimu bindery pokud lze, nejprve k NDS
-V svazek připojit pouze tento svazek připojit všechny svazky
-u UID uživatel vlastnící připojený strom aktuální uživatel
-g GID skupina vlastnící připojený strom aktuální skupina
-f práva přístupová práva k souborům 0755
-d práva přístupová práva k adresářům 0755
Tab. 3: Parametry příkazové řádky

ncopy

Tento příkaz pro kopírování značně urychluje kopírování souborů v rámci disků jednoho serveru tak, že kopírování provádí sám server a data neputují ze serveru ke stanici a pak ihned zpět na server. Jestliže zdrojové a cílové soubory nejsou na stejném NW serveru, proběhne kopírování klasickým způsobem.

Utility pro tisk

V prostředí NW jsou k dispozici tiskové fronty (print queue) a tiskové servery (print server). Fronty slouží k řazení tiskových úloh od klientů. Zde úlohy čekají, až si tiskový server úlohu vyzvedne a vytiskne ji na připojené tiskárně. Tiskové fronty jsou umístěny na serveru a tiskový server běží na počítači, ke kterému je připojena tiskárna (může to být jak server sám, tak obyčejná stanice).

Příkaz Popis příkazu Ekvivalent v NW 3.x
pqlist výpis dostupných tiskových front na NW serveru pconsole
pserver print server pro NW tiskové fronty pconsole
pqstat výpis úloh v tiskové frontě pconsole
pqrm odstranění úlohy z tiskové fronty pconsole
nprint klient pro tisk do NW tiskových front nprint
Tab. 4: Utility pro tisk

pserver

Přijímá úlohy čekající v NW tiskové frontě a odesílá je do místního tiskového systému v Linuxu. Běží na pozadí a standardně každých 30 vteřin kontroluje obsah NW tiskové fronty, jestli neobsahuje úlohu připravenou k vytištění.

nprint

Umí odeslat data určená k vytištění do NW tiskové fronty. Protože vyžaduje poměrně hodně přepínačů, je vhodné si nadefinovat vlastní alias nebo použít malý skript.

Utility pro práci s NW právy a soubory

Přístupová práva k souborům a adresářům jsou v případě připojení NW disku do Linuxu posuzována jak na straně Linuxu dle aktuálního uživatele a jeho členství ve skupinách, tak následně na straně NW serveru na základě autentifikace, která při připojení disku s NW serverem proběhla.

Mějme uživatele root, který si na straně Linuxu připojí z NW serveru disk a přitom se autentifikuje k tomuto NW serveru jako René.Hužva. Root má v Linuxu určitě neomezená práva, ale do připojeného svazku bude smět zapisovat jen do adresářů, do kterých má René Hužva povolen přístup právy na NW serveru.

Příkaz Popis příkazu Ekvivalent v NW 3.x
nwgrant nastavení NW práv v adresáři grant
nwrevoke obebrání NW práv v adresáři revoke
nwrights výpis efektivních NW práv k souboru nebo adresáři rights
nwauth ověření jména a hesla na NW serveru
nwtrustee výpis seznamu NW práv k adresáři tlist
nwvolinfo výpis informací o NW svazku volinfo
nwfstime výpis nebo nastavení času NW serveru fconsole
nwpurge definitivní zrušení smazaných souborů purge
Tab. 5: Utility pro práci s NW právy a soubory

nwauth

Tato utilita provede pouze autentifikaci uživatele u NW serveru. Může sloužit k ověřování uživatelů ve skriptech nebo jako součást Vašeho nového programu, který se bude autentifikovat k NW.

Utility pro práci s bindery databází

Ekvivalenty k těmto příkazům nejsou ve standardní distribuci od firmy Novell. Pro DOSové prostředí podobným způsobem asi nejlépe poslouží příkaz userprop z balíku pro multiserverové prostředí od p. Koláře.

Příkaz Popis příkazu
nwbols výpis objektů
nwbocreate vytvoření objektu
nwborm smazání objektu
nwboprops výpis properties objektu
nwbpcreate vytvoření property
nwbprm odstranění property
nwbpvalues výpis obsahu property
nwbpadd nastavení hodnoty property
nwbpset vytvoření nebo nastavení hodnoty property
Tab. 6: Utility pro práci s bindery databází

nwbols

nwbocreate

nwborm

nwboprops

Funkci dalších utilit nejlépe objasní manuálové stránky.