netatalkの導入

netatalk・ファイル共有講座

Netatalkの概要

Netatalkは、UNIXにAppleTalkの機能を提供するソフトウエアです。Netatalkを使用すれば、MacintoshからUNIX上のボリュームをマウントしたり、UNIXに接続されているプリンタを利用することができるようになります。

『Netatalkの誕生』 ミシガン大学でResearch System Unix Group というチームを率いている Wesley Craig氏 が、Appletalk のプロトコルスタックとその他のプログラムをまとめた netatalk と呼ばれるプログラムを開発しました。 


カーネルのオプションを設定

カーネルのコンパイル時のオプション

Netatalkのインストールの際、カーネルのオプションを確認する必要があります。
「/usr/src/linux」ディレクトにリカーネル設定用のプログラムが3種類用意されているので、どれかを実行しましょう。種類と実行方法は下記のとおりです。

テキストベースの質問形式で設定

% make config

メニューから設定

% make menuconfig

Xウインドウから設定

% make xconfig

例では menuconfig で行います。

% make menuconfig

メニューが表示されたら、Networking optionsまで移動して、Enterを押してください。またメニューが表示されるので、そこで Appletalk DDPにチェックします。

Networking options --->
<*> Appletalk DDP

次にカーネルを再構築しましょう。もちろん、最初からAppletalk DDP にチェックがされていれば再構築の必要はありません。


Netatalkの入手

ソースファイルは、以下のURLからたどって入手できます。

netatalk - the AppleTalk Protocol Suite for UNIX


Netatalkのインストール

ソースファイルのアーカイブを入手したら、それを任意のディレクトリに展開します。

Netatalkのあるディレクトリに移動

% cd /usr/src/

ファイルを解凍

% tar xvfz
.../netatalk-1.4b2.tar.Z

ビルドは引数なしで make を実行し、インストールは make install です。

% make

rootになるのを忘れずに

% make install


Netatalkの設定

通常、最初にしなければいけないことは /etc/servicesの設定です。以下のエントリが指定されているか確認し、なければ追加しておきましょう。

rtmp 1/ddp # Routing
Table Maintenance Protocol
nbp 2/ddp # Name Binding Protocol
echo 4/ddp # AppleTalk Echo Protocol
zip 6/ddp # Zone Information Protocol

次に /usr/local/atalk/etc ディレクトリ(インストール先のディレクトリ)にappletalk の設定ファイルを作ります。
最初に作成するファイルは /usr/local/atalk/etc/atalkd.conf ファイルです。このファイルには Apple のマシンのネットワークが接続しているネットワークデバイス名のみを登録しておきます。

eth0

通常はAppletalkデーモンプログラムが自動的にこのファイルに設定情報を追加しています。


ファイル共有のための設定

linux マシンのファイルシステムを提供して、ネットワーク上のApple のマシンから使えるようにする設定を紹介しましょう。
共有を受け持つデーモンは、afpd(Apple Filing Protocol Deamon)です。afpd の設定は、AppleVolumes.default ファイル、AppleVolumes.systemファイルを編集して行います。
AppleVolumes.defaultファイルにはゲストユーザのための設定を、AppleVolumes.systemファイルにはサーバ上にアカウントを持つユーザのための設定を記述します。それから、今回の例では、両方のファイルが /usr/local/atalk/etc にあると仮定します。
これらのファイルの内容は、共有の指定と型定義の指定から構成されています。

エントリの書式は以下のとおりです。

<pathname> [<volumename>]
[casefold=<x>] [codepage=<filename>] [options=z,l,j]
[access=<user|@group>,...] [dbpath=<path>]
[password=<password>] [prodos] [noadouble] [crlf]

<pathname>項目に公開するディレクトリを指定し、<volumename>項]]目にそのボリューム名を指定します。<volumename>項目は省略可能で、その場合は afpd が適当な名前を付けます。

  • casefoldは、英文字のキャピタルの指定です。<x>には、lowercase/uppercaseなどの指定ができます。
x 意味
lowercase クライアント/サーバで小文字
uppercase クライアント/サーバで大文字
xlatelower サーバ上で大文字、クライアントで小文字
xlateupper サーバ上で小文字、クライアントで大文字
     

  • codepage は、コードページの指定。NLSディレクトリにあるファイル名を指定します。
  •  

  • accessは、アクセスできるユーザおよびグループを指定する。ここのユーザおよびグループは、Linux上におけるものです。@ を頭につけたものがグループとして認識される。複数指定する場合は、カンマで区切ります。
  •  

  • dbpath は、Database Stuff を格納するディレクトリのパス名。
  •  

  • password は、ボリュームにアクセスするのに必要なパスワード。
  •  

  • prodos、noadouble はあまり関係ないので省略。
  •  

  • crlfは、TEXTタイプを持ったファイルの改行コードの変換を行う指定。

これらのファイルを設定する際の詳細や各種のオプションについては afpdのman ページを参照のこと。

AppleVolumes.default

単純な例は以下のとおりです。

/tmp Scratch
/home/ftp/pub "Public Area"

この例では /tmp ファイルシステムを Scratchと言う名で、ftp の publicディレクトリを Public Area と言う名で、それぞれAppleShare に提供しています。


プリンタ共有のための設定

Linux マシンに接続されたプリンタをApple製のマシンと共有するのも簡単で、AppleTalk のプリンタ・アクセス・プロトコル・デーモンpapdを使う。このプログラムは、Apple マシンからのプリントリクエストを受けつけてスプールし、lprデーモンに渡して Linux マシンのプリンタに出力します。

papd の設定には /usr/local/atalk/etc/papd.confファイルを使います。このファイルの書式は /etc/printcap ファイルと同じで、登録したプリンタ名がAppletalkの命名プロトコル NBP を使って Appletalk 上に設定されます。

papd.conf は以下のような形式です。

TricWriter:\
:pr=lp:op=cg:

この設定で TricWriter というプリンタ名が Appletalk上に設定され、そのプリンタに送られた出力は lpd を使って linux の lp プリンタ(lpというプリンタは/etc/printcap ファイルで設定されています)に出力されます。
op=cg の指定は linux マシンのユーザ cg がプリンタの使用者になることを意味します。


Netatalkの起動

さて、これで基本的な設定を試す準備ができました。netatalkパッケージにはrc.atalk ファイルが含まれているので、 netatalk を起動するには以下のようにします。

# /usr/local/atalk/etc/rc.atalk

これで必要なデーモン類が全て起動するはずです。エラーが出なければ、ソフトウェアはコンソールにそれぞれの段階のメッセージを示していきます。


Machintoshから使ってみる!

netatalk が正しく機能しているかを確認するには、Appleのマシンを使って、アップルメニューから「セレクタ」を選び、AppleShare をクリックしてLinuxの表示が見えるか確かめます。


Netatalk の注意点

場合によっては、IP ネットワークを設定する以前に Appletalk機能を起動しなければいけない場合があります。netatalk が起動しなかったり、netatalk が起動すると IPネットワークにトラブルが生じたりする場合、netatalk を /etc/rc.d/rc.inet1 以前に起動するようにしましょう。

afpd(Apple Filing Protocol Daemon)は HDDにさまざまなファイルを作ります。AppleTalk 用に指定したディレクトリに.AppleDesktop とNetworkTrash Folder を作り、それ以下の Macからアクセスしたディレクトリ全てにリソースフォークを保存するための .AppleDoubleを作っていきます。/ を afpdで公開するまえにはくれぐれもよく考えましょう。

afpdはMacから平文のパスワードを求めます。これはセキュリティ的には問題になるので、afpdをインターネットなどの外部のネットワークに接続したマシンで起動する際には充分注意しましょう。

関連記事