AFSD(8) — NEWS-OS Programmer’s Manual
名称
afsd − AFP をサポートする AppleShare 互換ファイルサーバ
形式
afsd [ −c ] [ −a ] [ −C ] [ −n server_name ] [ −s max_sessions ] [ −g guest_name ] [ −l log_level ]
解説
afsd は、AFP (AppleTalk Filing Protocol) を用いてクライント マシン (Macintosh) と交信するサーバです。このサーバを用いることにより、 NEWS は AppleShare 互換のファイルサーバとなります。
現在サポートされているのは、AFP 2.0 です。 またクライアントとしては Macintosh のみを想定しています。 MS-DOS や Pro-DOS はサポートしていません。
CD-ROM をサポートしています。NEWS に接続された CD-ROM ドライブに Macintosh 用の CD-ROM をいれて、クライアントからシェアできるようになります。
オプション
−c サーバ上のテキストファイルが クライアント上にコピーされる場合に、CR/LF の変換を行います。 ただし、データファイルに関しては、この変換を行いません。 このオプションがない場合には、変換が行われません。 このオプションは UNIX 上のテキストファイルを Macintosh と共有する場合に 用います。
デフォルトでは、オフです。
−a このオプションが指定されると、クライアントのファイル名が 印字可能な ASCII 以外の文字を含むファイルをサーバ上に保存した場合に、 それらの文字を 16 進数に変換し、前に“:”をつけたものに変換 します。 すなわち、日本語の表示のファイル名は作成されません。
デフォルトでは、オフです。
−C マウントされるボリュームの中に CAP で用いられているものがあると、 そのボリュームを Read-Only でマウントします。 このオプションを用いることにより、CAP を用いて作った データを afsd で用いるデータに変換できます。 ただし、このオプションは、一時的データの変換に用いるべきもので 定常的な利用をお勧めしません。
デフォルトでは、オフです。
−n server_name
AppleTalk 上で見えるサーバの名前 (object 名) を設定します。 タイプ名 (type) は、AFPServer です。 日本語を含む名前は使えません。
デフォルトでは、<hostname> Sony NEWS となります。
−s max_sessions
同時にアクティブになるセッションの最大数を決めます。
デフォルトでは、10 です。
−g guest_name
このオプションは、AppleSahre での “Anonymous” ログインを可能にします。 この “guest_name” で指定されたユーザの UNIX 上での ユーザ ID が Anonymous ログインの際に用いられます。 セキュリティの観点からは、使用をお勧めしません。
デフォルトでは、オフです。
−l log_level
syslog を使ってログを取ります。 現在可能なログレベルは、0/1/2 の 3 段階です。
レベル 0 は、afsd の開始時と終了時にログが出力されます。
レベル 1 はレベル 0 に加えて、各セッションの開始時と終了時にログが出力 されます。
レベル 2 では、レベル 1 に加えて、ボリュームが mount/ umount されたときに、ログが出力されます。
デフォルトでは、ログレベル 0 です。
ユーザおよびグループ
AFP クライアントからサーバに接続しようとすると、 ユーザ名とパスワードの入力を要求されます。 これらに対して afsd は、サーバで用いられている (UNIX で用いられる) ユーザ名とパスワードをそのまま対応させます。 また、所属するグループもサーバ上のもの (UNIX で用いられる) が そのまま用いられます。 したがって、ユーザ登録およびグループの登録に関しては、 通常の UNIX ユーザ登録と同様に /etc/passwd および /etc/group を編集することによって行います。
ユーザの認証
ユーザの認証には、UNIX の持つメカニズムを利用しています。 サーバに接続するユーザは、そのサーバ上に アカウントがなければいけません。 ただし、後述する “Anonymous” ユーザ機能を 利用することにより、アカウントがないユーザもアクセス権を 限定して使用することは可能となります。 パスワードは、UNIX のパスワードエントリをそのまま使用します。 また、UNIX と同様にパスワードフィールドが “∗” の場合は、サーバ に接続できません。また、パスワードの付けていないユーザも接続できません。
Anonymous アカウントの取り扱い
afsd では、接続の際にパスワードを 必要としない Anonymous というアカウントが用意されています。 クライントで AppleShare を用いた場合には、guest と表示されますが、 ここでは混乱を避けるために Anonymous と呼びます)
しかし、UNIX ではこの様なアカウントは、セキュリティ上問題があるので 作成できません。 そこで、afsd では、この Anonymous Login を実現するために、 オプションで Anonymous に相当する UNIX 上のアカウントを指定し、接続する ことができます。
ただし、指定されたアカウントは、/etc/passwd にエントリーが なければいけません。 また、このアカウントにパスワードが付いていても afsd は、 パスワードの入力を要求しません。
アクセスの拒否
afsd では、サーバ上のアカウント名をそのまま使用します。 また、アクセス権もそのまま引き継がれるため セキュリティ上の観点から、無条件でアクセスを拒否するユーザを設定できます。
/etc/afpusers というファイルにユーザ名を、 1行に1人ずつ書き並べることにより そこに書かれたユーザの afsd への接続を拒否出来ます。
例: root
uucp
daemon 上記の例の場合は、 root、uucp、daemon というユーザ名では、afsd を使用できません。
ファイルシステムの構造
AFP クライアントは、ボリューム単位でサーバのディスクをマウントできます。 ボリュームの下には、階層的にディレクトリおよびファイルが作成されます。
afsd では、サーバ上の任意のディレクトリ以下をボリュームとして指定し、 UNIX のディレクトリとファイルを、それぞれ AFP クライアントの フォルダとファイルに割り当てます。
各ボリュームの Read/Write のアクセス権は、接続したユーザのその ディレクトリに対するアクセス権に依存します。 また、各ボリューム毎にもパスワードが設定できます。
ボリュームの指定方法
ボリュームの指定には、以下の方法があります。 [1] システム共通のボリュームの指定
afsd では、システム共通の マウントできるボリューム(public mount と呼びます)を指定できます。 これは、/etc/afpexports に登録しておくことで設定します。
/etc/afpexports の書式は次のとおりです。 <target directory>:<Volume name>:<passwd(option)>:<user list(option)> 例: /export/mac:NEWS Public:Sdoojdcvdi:david,antonio,thompson これは /export/mac ディレクトリを “NEWS Public” というボ リューム名でマウント可能にすることを示しています。
<user list> は省略可能です。 省略したときは、/etc/afpusers に指定されている 以外のユーザ名を持つすべてのユーザが使用可能です。
<user list> に何らかの記述がある場合には、 そのボリュームをマウントできるのは、user list に指定されたユーザだけになります。
上記の例の場合は、 david、antonio、thompson というユーザだけが、マウントできることになります。
<passwd> は省略可能です。 ここには、暗号化されたパスワードが入ります。 このパスワードは、ボリュームパスワードと呼ばれ該当のボリュームを マウントする際にのみ、入力を要求されるものです。 現在では、atxadmin を通じてのみ、このパスワードを設定できます。
なお、上記のような設定を /etc/afpexports 内に複数記述が可能です。 [2] 各ユーザ個人のボリュームの指定
そのサーバに接続できる人が、それぞれ個人用のボリューム (private mount と呼びます) を作成できます。 各個人のホームディレクトリにボリュームリストを記した ファイル ~/.afpexports を設定します。
~/.afpexports の書式は次のとおりです。 <target directory>:<Volume name>:<passwd(option)> 例: /var/home/hagiwara/Mac:萩原君のボリューム: これは /var/home/hagiwara/Mac ディレクトリを “萩原君のボリューム” という名前でマウントすることができます。 ボリューム名に日本語は使えます。
<passwd> は省略可能です。 ここには、暗号化されたパスワードが入ります。 これは、ボリュームパスワードです。 現在では、atxadmin を通じてのみ、このパスワードを設定できます。
このファイルがない場合には、public mount のみ可能になります。
なお、上記のような設定を ~/.afpexports 内に複数記述が可能です。
これらの設定は、atxadmin を用いて設定することをお勧めします。
CD-ROM の設定
afsd では、CD-ROM を共有することが可能です。 この場合には、/etc/afpexports に以下のような記述を加えます。 /dev/sd06c:CD-ROM:: この場合には、/dev/sd06c は、CD-ROM の接続されている デバイス名を直接指定します。 ボリューム名には、CD-ROM と指定します。 afsd は、挿入された CD-ROM に設定されているされたボリューム名を 自動判別し、マウントの際に表示します。
<user list>/<passwd> も使用可能ですので、これらを用いてセキュリティを 保持することも可能です。
通常のインストールの場合には、/dev/sd06c のパーミションは 0600 となっています。afsd で共有する場合には そのデバイスのパーミションを 0644 に変更してください。 すなわち、root になって、 # chmod 0644 /dev/sd06c が必要です。
CD-ROM は、誰もマウントしてない状態でのみイジェクト・変更が 可能です。 また、複数の CD-ROM ドライブをサポートしています。 /dev/sd06c:CD-ROM::
/dev/sd04c:CD-ROM::stevens,thompson の様な記述の場合には、/dev/sd04c に挿入されている CD-ROM は ユーザ名 stevens と thompson からのみアクセス可能です。 また、/dev/sd06c に挿入されている CD-ROM は、すべての ユーザからアクセス可能です。 この場合にも、/dev/sd06c と /dev/sd04c のパーミションを 0644 にしてください。
ファイルフォーマット
ここでは、サーバ上でどのような形で、Macintosh のファイルが書かれるかを、 簡単に説明します。
Macintosh のファイルは、基本的にデータフォークと呼ばれる主にデー タを格納する部分と、リソースフォーク と呼ばれるそのファイルに 必要な属性などを集めた部分に分けられます。
afsd では、一つのファイルを上記のデータフォークとリソースフォー ク二つのファイルとして別々に分けて書き込む方法を用いています。 また、管理上必要な情報を保持するためにファイルを作成します。
afsd では、データフォークはそのままのファイル名で指定されたディレク トリへ作成します。 また、リソースフォークは .afprsrc というディレクトリの下に作成します。 この両ファイルのアクセス権 (ファイルモード) は、同じです。
また、クライアント上のフォルダは、サーバ上ではディレクトリとして 保存されます。
例
/export/mac のディレトリに、SuperData と WriteData と いうファイルと Myfolder というフォルダ内に Myfile というファイルを保存したとします。 実際にサーバ上では、以下のように保存されます。 /export/mac/SuperData [データフォーク]
/export/mac/WriteData[データフォーク]
/export/mac/.afprsrc/SuperData[リソースフォーク]
/export/mac/.afprsrc/WriteData[リソースフォーク]
/export/mac/.finderinfo/SuperData[管理情報]
/export/mac/.finderinfo/WriteData[管理情報]
/export/mac/Myfolder/Myfile[データフォーク]
/export/mac/Myfolder/.afprsrc/Myfile[リソースフォーク]
/export/mac/Myfolder/.finderinfo/Myfile [管理情報]
上記の様に、各フォルダ毎に .finderinfo, .afprsrc ディレクトリが 必要に応じて自動的に作成されます。
さらに、 ボリューム毎に .ADeskTop、.IDeskTop、および .TDeskTop ファイルが作成されます。これは afsd が、内部的に 使用するものです。
また、Macintosh 上の「ゴミ箱」 (Trash) を、実現するために ボリューム毎に Network Trash Folder というディレクトリを 作成して一時的に利用します。 このディレクトリも必要に応じて自動的に作成されます。
UNIX のファイルシステムを利用しているために Macintosh 上で使える 文字でも UNIX で使えないものが存在します。 たとえば、“/” です。
Macintosh 上で “12/12” というファイルを作成したとします。 これは UNIX 上ではそのままのファイル名は作成できないので “12:2f12” というファイル名に変換します。 (2f は、ASCII コードで “/” を表す) なお、“:” は、Macintosh ではファイル名として使用できない ものです。 なお、日本語表示に関しては問題はありません。 そのままの名前でファイルが作成されます。
終了
afsd は、それぞれのセッションに対して一つのプロセスを fork します。 親プロセスに対して、SIGHUP を送るとそれぞれのセッションは、 すぐに終了します。
SIGTERM を送ると、デフォルトで 5 分後にセッションを終了する旨の メッセージをクライアントに対して送り、その 5 分後に終了します。
注意事項
サーバ上にある UNIX ファイルを、マウントされているボリュームディレクトリ に、データフォークとしてコピーした場合、クライアントからそのファイルを 参照することができます。 ただし、この場合にはリソースフォークやアイコンに当たる ものがないため afsd では、Creator=sony とし、Type としては、 UNIX 上のファイルシステムの情報からを元に、TEXT、DATA、DEV、SKT、DIR のいずれかを割り当てます。 また、アイコンは適当なものを割り当てます。 ただし、これらの Creator などは、あくまで一時的なものであるため 他のアプリケーションで使用される可能性がありますので ご注意ください。
−C オプションを指定することにより、CAP コンパチモードとなります。 この場合に afsd は、CAP60 と呼ばれるソフトウェアの 標準的な構成で作ったボリュームを扱えます。 しかし、CAP60 を改造してあったり、 インストールの仕方によっては、 作成ボリュームを読めないこともあります。 このモードは、全ての CAP のファイルフォーマットを扱うことを保証する ものではありません。 また、このモードは CAP でのデータを afsd に変換する際に 過渡的に用いられるように作成されているため、 Read-Only でのマウントしかできません。
同じマシン上で複数の afsd を走らせると共有しているファイルの 一貫性が失われます。同じマシン上で複数の afsd を 走らせないでください。
root では、サーバにコネクトできません。 また、root “/” をボリュームとしてマウントで来ません。 これらは、主にセキュリティ上の観点からです。
ボリュームパスワードを設定するためには、 atxadmin を利用するしかありません。 なお、パスワードの暗号化は、UNIX で通常 用いられている (/etc/passwd で用いられる) と同じ方法です。
NEWS の CD-ROM ドライブと Macintosh 用の CD-ROM ドライブには、互換性のない モデルも存在します。そのために、すべての Macintosh 用の CD-ROM が NEWS で読めるわけではありません。
関連事項
atlookup(1), atxadmin(1), atconfig(8)
NEWS-OSRelease 4.2.1R