Linux を Novell ファイルサーバとして機能させるためのパッケージには二種類 あります。どちらのパッケージを使っても、Linux 上のファイルを Novell NetWare クライアントソフトウエアのユーザと共有する事ができます。 本物の Novell ファイルサーバと同じように、ファイルシステムをマシン上の ローカルドライブにマップすることや、アタッチすることができます。 両方のパッケージを使ってみて、あなたの目的にはどちらのパッケージが 適しているかを判断するのがよいでしょう。
Martin Stover <mstover@freeway.de> が開発したパッケージです。 Netware クライアントに対してファイルとプリントサービスを提供します。
mars_nwe は Martin Stovers Netware Emulator の 略です。
mars_nwe は Novell NCP のサブセットを実現しています。 ファイルサービス、ディスクベースの bindery サービス、プリントサービスが 実現されています。バグを含んでいるようです。(@@)
linux01.gwdg.de <ftp://linux01.gwdg.de/pub/ncpfs/>. から入手できます。 これを書いている時点での最新バージョンは: mars_nwe-0.96.pl2.tgz.
まず最初にあなたのカーネルが IPX 機能をイネーブルして構築されている ことを確認する必要があります。バージョン 1.2.13 のカーネルでは、 以下に示すように 'The IPX protocol' の質問に対して 'Y' と答えている ことを確認する必要があるだけです:
...
...
Assume subnets are local (CONFIG_INET_SNARL) [y]
Disable NAGLE algorithm (normally enabled) (CONFIG_TCP_NAGLE_OFF) [n]
The IPX protocol (CONFIG_IPX) [n] y
*
* SCSI support
...
...
より新しい版のカーネルでは、プロンプトなどが多少異なるかもしれません が、同様の方法で大丈夫です。
あなたの使用するイーサネットカードに対応したドライバを含んでいること を確認する必要もあります。もしこれについてどうやればいいかを知らなければ Ethernet-HOWTO を読んでください。 <http://sunsite.unc.edu/mdw/HOWTOJ/Ethernet-HOWTO.html>.
カーネルを構築する準備は整いました。構築が完了した後には lilo を 走らせて、新しいカーネルをインストールすることを忘れないでください。
# cd /usr/src
# tar xvfz mars_nwe-0.96.pl2.tgz
パッケージを make するのはとても簡単です。まず、config.h を眺めて、 もし必要ならばエディットします。これによって、 インストールディレクトリや、サーバがサポートするセッションやボリューム の最大数などを設定することができます。 次に:
# make
# make install
これによってサーバが構築され、適切なディレクトリにインストールされ ます。また、インストレーションスクリプトは /etc/nwserv.conf という 設定ファイルをインストールします。
設定はとても簡単です。/etc/nwserv.conf ファイルをエディットします。 はじめてこのファイルの内容を見るとそのフォーマットはちょっと謎めいて 見えますが、実はとても明瞭です。それぞれの行にひとつの設定が記述 されています。それぞれの行は、その行の内容を意味する数字で始まり、 空白で区切られています。'#' の後の文字はコメントとみなされ、無視 されます。パッケージの中にもMartinの提供する設定例が含まれています が、別のもっと単純な例をここに挙げておきます。
# VOLUMES (max. 5)
# Only the SYS volume is compulsory. The directory containing the SYS
# volume must contain the directories: LOGIN, PUBLIC, SYSTEM, MAIL.
# The 'k' option converts all filenames in NCP requests to lowercase.
# The default is upper case.
# Syntax:
# 1 <Volumename> <Volumepath> <Options>
1 SYS /home/netware/SYS/ # SYS
1 DATA /home/netware/DATA/ k # DATA
# SERVER NAME
# If not set then the linux hostname will be converted to upper case
# and used.
# Syntax:
# 2 <Servername>
2 LINUX_FS01
# INTERNAL NETWORK NUMBER (not yet implemented)
# Syntax:
# 3 <Internal Network Address> [<Node Number>]
# NETWORK DEVICE(S)
# This entry configures your IPX network. If you already have your
# IPX network configured then you do not need this.
# Syntax:
# 4 <IPX Network Number> <device_name> <frametype> [<ticks>]
# Frame types: ethernet_ii, 802.2, 802.3, SNAP
4 0x39a01010 eth0 802.3 1
# SAVE IPX ROUTES AFTER SERVER IS DOWNED
# Syntax:
# 5 <flag>
# 0 = don't save routes, 1 = do save routes
5 0
# NETWARE VERSION
# Syntax:
# 6 <version>
# 0 = 2.15, 1 = 3.11
6 0
# MINIMAL GID UID rights
# permissions used for attachments with no login.
# Syntax:
# 10 <gid>
# 11 <uid>
# <gid> <uid> are from /etc/passwd, /etc/groups
10 200
11 201
# SUPERVISOR password
# May be removed after the server is started once. The server will
# encrypt this information into the bindery file after it is run.
# Syntax:
# 12 <Supervisor-Login> <Unix username> [<password>]
12 SUPERVISOR root secret
# USER ACCOUNTS
# This associates netware logins with unix accounts. Password are
# optional.
# Syntax:
13 <User Login> <Unix Username> [<password>]
13 TERRY terry
13 MAR mar
# PRINT QUEUES
# This associates Netware printers with unix printers. The queue
# directories must be created manually before printing is attempted.
# Syntax:
# 21 <queue_name> <queue_directory> <unix_print_cmd>
21 EPSON SYS:/PRINTJ/PSON lpr -h
21 LASER SYS:/PRINT/LASER lpr -Plaser
# DEBUG FLAGS
# Syntax:
# <debug_item> <debug_flag>
#
# 100 = IPX KERNEL
# 101 = NWSERV
# 102 = NCPSERV
# 103 = NWCONN
# 104 = use NWCLIENT
# 0 = disable debug, 1 = enable debug
100 0
101 0
102 0
103 0
104 0
# RUN NWSERV IN BACKGROUP AND USE LOGFILE
# Syntax:
# 200 <flag>
# 0 = run NWSEV in foreground and don't use logfile
# 1 = run NWSERV in background and use logfile
200 1
# LOGFILE NAME
# Syntax:
# 201 <logfile>
201 /tmp/nw.log
# APPEND LOG OR OVERWRITE
# Syntax:
# 202 <flag>
# 0 = append to existing logfile
# 1 = overwrite existing logfile
202 1
# SERVER DOWN TIME
# This item sets the time after a SERVER DOWN is issued that the
# server really goes down.
# Syntax:
# 210 <time>
# in seconds. (defaults 10)
210 10
サーバをスタートするには、ただ、次のコマンドを実行するだけです:
# nwserv
サーバをテストするには、まず、ネットワーク上の Netware クライアント から、アタッチ、ログインをやってみます。次にクライアントから CAPTURE を設定し、印刷してみます。両方ともうまくいけば、サーバは 動作しています。
Ales Dryak <A.Dryak@sh.cvut.cz> が開発しました。 Linux を NCP ベースのファイルサーバとして機能させる事ができます。
Ales はこのパッケージを LinWare Daemon の略として、lwared と名付けました。
lwared サーバは Novell NCP のサブセットを提供します。プリントサービスは 含まれていませんが、messaging(@@) を実現しています。現在のところ、 Windown95 や Windows NT クライアントとはあまり相性がよくないようです。 lwared では、IPX ルーティングや SAP テーブルの更新のためには、別のプログラム を使う必要があります。クライアントの誤った動作によってサーバがクラッシュ することもあります。重要なことには、ファイル名変換の機能が実現されて いません。
サーバは NETX や VLM NetWare シェルと共に動作します。(@@)
lwared は 1.2.0 以降のカーネルで動作しますが、カーネルパッチが必要ない という理由で、1.2.13 を使う事をお薦めします。 1.3.* カーネルでは IPX 機能の一部が変更されたため、うまく動作させる ためにはなんらかのパッチが必要なことを意味しています。新しいカーネル のためのパッチが含まれているので、これらα版のカーネルを使う必要があると しても、lwared をうまく動作させる事ができるはずです。
lwared パッケージは anonymous ftp で以下から入手できます: klokan.sh.cvut.cz <ftp://klokan.sh.cvut.cz/pub/linux/linware/> または : sunsite.unc.edu <ftp://sunsite.unc.edu/pub/Linux/system/Network/daemons> またはこの ミラーサイト。
これを書いている時点での最新のバージョンは: lwared-0.95.tar.gz
こんな感じ:
# cd /usr/src
# tar xvpfz lwared-0.95.tar.gz
もしあなたがα版の 1.3.* カーネルを使っている場合には、1.3.17 以降 のバージョンで試してみてください。提供されているパッチは、それらの バージョンに対して作られたものだからです。 1.3.17 よりも古いバージョンでは、手動のパッチをあてる必要が あるでしょう。(これをどうやるかについては、INSTALL ファイルの 中にいくらか情報があります。) 1.3.17 以降のカーネルにパッチをあてるには以下を試してください:
# make patch
パッチをあてたあとには、もし必要ならばカーネルが IPX サポート をイネーブルして構築されていることを確認します。バージョン 1.2.13 カーネルでは、以下に示すように 'The IPX protocol' の質問に対して 'Y' と 答えていることを確認する必要があるだけです:
...
...
Assume subnets are local (CONFIG_INET_SNARL) [y]
Disable NAGLE algorithm (normally enabled) (CONFIG_TCP_NAGLE_OFF) [n]
The IPX protocol (CONFIG_IPX) [n] y
*
* SCSI support
...
...
より新しい版のカーネルでは、プロンプトなどが多少異なるかもしれません が、同様の方法で大丈夫です。
あなたの使用するイーサネットカードに対応したドライバを含んでいること を確認する必要もあります。もしこれについてどうやればいいかを知らなければ Ethernet-HOWTO を読んでください。 <http://sunsite.unc.edu/mdw/HOWTOJ/Ethernet-HOWTO.html>.
カーネルを構築する準備は整いました。構築が完了した後には lilo を 走らせて、新しいカーネルをインストールすることを忘れないでください。
lwared をコンパイルするには、まず最初に server/config.h をチェック して、必要ならエディットします。このファイルはサーバが動作中に どのようにふるまうか、などの設定が含まれています。 デフォールトの設定はリーズナブルなものですが、ログファイルと 設定ファイルの置かれるディレクトリがあなたの環境に あっていることをチェックしておいたほうがいいでしょう。
# make depend
# make
# make install
私の場合には、'make depend' は float.h が無いと文句を言ってきましたが、 うまく動作しました。また、gcc 2.6.3 でコンパイルしたときには、 lib/ipxkern.c の以下の行を修正する必要がありました:
#include <net/route.h>
を
#include <net/if_route.h>
に修正しました。 このファイルは名前が変わったようです。
'make install' を実行する事によって、サーバとルーティングデーモン が /use/sbin ディレクトリに、lwpasswd プログラムが /usr/bin に、IPX ユーティリティが /sbin に、そして最後になるが重要なのは、マニュアル ページが /usr/man ディレクトリ以下にインストールされます。 もしこれらのディレクトリ配置があなたのシステムに適していない場合には、 関連した Makefile をエディットして、目的のディレクトリに書き換えて ください。
まず最初にしなければならないのは、あなたのサーバがサポートしている IPX ネットワークをサポートできるように、イーサネットカードを設定 しなければなりません。 これには、それぞれの LAN セグメントの IPX ネットワークアドレス、 それぞれのセグメントにどのイーサネットデバイス (eth0, eth1 など) が 接続されているのか、それぞれの LAN セグメントがどのフレームタイプ (802.3, EtherIIなど) を使用しているのか、サーバが使用すべき インターナルネットワークアドレス(これは実際には、サーバが複数の LAN セグメントに対してサービスする場合に必要です。) を知る必要があります。
設定の例として、異なるIPXネットワークセグメントのアドレス 23a91300 と 23a91301 の上の、インターナルネットワークアドレス bdefaced というサーバ の場合には次のようになります:
# ipx_internal_net add BDEFACED 1
# ipx_interface add eth0 802.3 23a91300
# ipx_interface add eth1 etherii 23a91301
カーネルは実際のところ、IP に対するのと同様に IPX パケットを フォワードします。しかし、カーネルはルーティングテーブルの 更新を管理するために追加のソフトウエアを必要とします。 IPX の場合には、二つのデーモンが必要であり、両方とも lwaredと共に供給されています。 ipxripd は IPX ルーティング情報を管理し、ipxsapd は SAP 情報を 管理します。 これらのデーモンをスタートするには、そのログメッセージをどこに 出力するかを指定するだけです:
# ipxripd /var/adm/ipxrip
# ipxsapd /var/adm/ipxsap
lwared サーバに対してログインを許すためには、手動で二つのファイルを 設定する必要があります。以下の通り:
LinWare ユーザのアカウント情報を保持するファイルです。 lwpasswd プログラムはそれを最新の状態に保つためのものです。 /etc/lwpasswd ファイルの最もシンプルな形式はこんな感じ:
ales:
terryd:
guest:
ログイン ID の後ろに ':' が付加された単純なリストです。':' の後ろに 暗号化されたパスワードが入ります。 重要なことは、暗号化されたパスワードが存在しない場合にはパスワード なし、と認識されるということです。 LinWare ユーザは Linux アカウントをもっていなければなりません。 すなわち、/etc/lwpasswd の中のすべてのユーザは /etc/passwd の 中にも存在しなければなりません。 また、他の LinWare ユーザのパスワードを変更できるのは root ユーザ のみです。root としてログインすることで、LinWare ユーザの パスワードを以下のように設定・変更することができます:
# lwpasswd rodg
Changing password for RODG
Enter new password:
Re-type new password:
Password changed.
LinWare のボリュームテーブルで、LinWare ユーザに対して どのディレクトリが利用可能かが保持されています。(この ファイルは NFS における、/etc/exports ファイルと同様の機能 です。)シンプルな例は :
SYS /lwfs/sys
DATA /lwfs/data
HOME /home
フォーマットはシンプルです: ボリューム名の後に空白を置き、 その後ろにエクスポートされる Linux のディレクトリ名を書きます。 サーバをスタートするためには、少なくとも SYS ボリュームの エントリーを記述する必要があります。 もし、DOS ベースのユーザが、LinWare サーバをプライマリサーバとして 使える必要がある場合には SYS ボリュームとしてエクスポートしている ディレクトリの下にスタンダード SYS ボリュームディレクトリを インストールする必要があります。 この場合、もちろんこれらのファイルは、 Novell Corporation の著作権が あるので、あなたはこれらについてのライセンスをもっていなければ なりません。 もしユーザがプライマリサーバとして Novell ファイルサーバを 使っているのならば、必要ありません。
じゃんじゃじゃーーーん!
# lwared
なんと簡単なんでしょうね? 恐らくあなたは疑問があるでしょう。 通知 (advertise) されるべきファイルサーバ名はどうやってわかるんでしょう? 上のようにサーバを起動した場合には、Linux の hostname で返される 名前がファイルサーバ名として通知されます。 他の名前をファイルサーバ名として通知したい場合には、例えば:
# lwared -nlinux00
のようにすると、サーバ名は linux00 となります。
まず最初に、ネットワーク上の DOS クライアントから、slist で LinWare サーバが見えるかどうか、のテストをします。slist プログラム は Novell ファイルサーバの SYS ボリュームにあるので、どこかすでに ログインしているマシンからテストする必要があります。 もしこれがうまくいかなかった場合には ipxsapd と lwared の 両方が起動されている事を確認してください。slist がうまくいったら、 次にサーバにアタッチして、ボリュームをマッピングします:
C:> attach linux00/ales
...
...
C:> map l:=linux00/data:
C:> l:
他のマップと同じ様に、これらの新しいマップを扱う事ができるはずです。 ここでのファイルパーミッションは、あなたの LinWare ログインに相当する Linux アカウントに許されたパーミッションに基づいたものになります。