2010.04.26
このページはnetatalk 2.0.5の時代のものなので既に古いです。2.0.5は安定していますがEA未対応であるため、Snow Leopardのバグによって問題が発生します。
最近の情報については、Netatalk and Sambaのページを御覧ください。
UNIX系OSにnetatalkとsambaの両方をインストールしておけば、Mac/Winの両方からアクセス出来るファイルサーバとして使えます。
Mac OS XはsambaやNFSにもアクセス出来ますが、netatalkをお薦めします。
理由は、
などがあります。
このページはnetatalk 2.0.5および2.1beta2について説明しています。
現行安定版の2.0.5は非常に安定していますが拡張属性(EA)未対応のため、Mac OS 10.6 Snow Leopardから接続した場合に問題が発生します(Mac側のバグ)。
2.1系列はEA対応であるため問題は発生しません。開発版2.1beta2の利用をお奨めします。
古いバージョンの情報は以下のページをどうぞ。
netatalk 2.0.4 and samba - 安定しているがちょっとセキュリティ問題あり。Time Machine対応なし。
先送りになっている件については、誰かパッチを書いて下さい。大変喜ばれます。
netatalk本体をインストールする前に、ライブラリ関係をインストールしておきます。
クライアントであるMacからサーバが見えるようにするには、SLPデーモン(Mac OS X 10.4迄)やZeroconfデーモン(Mac OS X 10.2以降)をインストールする必要があります。
netatalkの構築より先にslpdをインストールし、起動もnetatalkのafpdより先にしておけば、afpdの起動/停止に合わせて動的に宣伝するようになります。
フリーのslpdには、OpenSLPがあります。
OpenSLPのホームページ: OpenSLP Home Page
OpenSLPのありか: Browsing Download Server: /openslp/
起動スクリプトはソースアーカイブのetcディレクトリにあるファイルが参考になります。設定ファイルslp.confは、特に理由がなければデフォルトのままで問題ないと思います。
netatalkがSLP未対応でコンパイルされている場合は、静的に宣伝させる事も出来ます。afpdの起動/停止に無関係に宣伝しっぱなしになりますが、大きな問題ではないでしょう。設定ファイルslp.regに次のように書きます。192.168.1.1の部分はサーバのIPアドレスに読み替えて下さい。
afp://192.168.1.1/?NAME=サーバ名&ZONE=,en,65535なお、Solaris標準の/usr/lib/inet/slpd (SUNWslpr, SUNWslpu)もnetatalkで使えます。
Bonjour (旧称Rendezvous)ではZeroconf (Howl, Avahi)が使えます。Howlは既に開発停止なので、これからインストールするならAvahiでしょう。
AppleのBonjourのページ: Networking - Bonjour
Howlのホームページ: Porchdog Software (リンク切れ)
Avahiのホームページ: Avahi
これらはafpdの起動/停止に連動しないので、インストールはnetatalkの前でも後でも結構です。設定ファイルを書く必要があります。
HowlのmDNSResponder.confの例
"サーバ名" _afpovertcp._tcp local. 548
Avahiのafp.serviceの例
<?xml version="1.0" standalone='no'?><!DOCTYPE service-group SYSTEM "avahi-service.dtd"><service-group> <name replace-wildcards="yes">%h</name> <service> <type>_afpovertcp._tcp</type> <port>548</port> </service></service-group>動的登録が出来るようにするパッチも昔から存在しますが、開発者のDidierが猛烈に反対しているので採用されません。彼はAvahiのライブラリを使うのではなく、Avahiのコマンド呼び出す方法を考えていますが、実際の動きはありません。誰かパッチを書いて送ってやってください。
下の「netatalkのユーザ認証」のところで説明するように、暗号化パスワードを使う為にはOpenSSLやlibgcryptをインストールしておく必要があります。
特にクライアントがMac OS X 10.5 Leopard以降である場合はインストールしておいた方がいいです。
OpenSSLのホームページ: OpenSSL: The Open Source toolkit for SSL/TLS
Libgcryptのホームページ: Libgcrypt - Free Software Directory - Free Software Foundation
netatalk 2.0.xはBerkeley DB 4.1.25以降を必要とします。netatalk 2.1beta1以降は4.6以上を必要とします。
バージョンが適切でないとconfigureの途中にエラーが出て止まるので、適切なバージョンのBerkeley DBをインストールしてください。デフォルトでインストールすると、/usr/local/BerkeleyDB.4.7/というようなバージョン番号付きのディレクトリに入るので、別のバージョンと共存出来ます。
Berkeley DBのありか: Berkeley DB | Oracle Embedded Database
参考: Netatalk 2.0 Manual - Chapter 2. Installation
やっとnetatalkのインストールです。
オリジナルソースを入手する。
Browse netatalk Files on SourceForge.net
オリジナルソースを展開。
$ tar zxvf netatalk-XXX.tar.gz$ tar jxvf netatalk-XXX.tar.bz2では、configureしましょ。(CVS版の場合はconfigureがないのでbootstrapです。)
$ cd netatalk-XXX/$ ./configure \ --enable-redhat
オプションは古いバージョンとは結構違います。$ ./configure --helpで確認してください。
--enable-redhatはRedHat、Fedora、CentOS等の場合の起動スクリプトをインストールするオプションです。他に--enable-suse、--enable-gentoo、--enable-cobalt、--enable-netbsd、--enable-debianがあります。Solarisでは何も指定しなくてもSYSV用がインストールされました。
あと、ライブラリをうまく認識しない場合は、--enable-srvloc、--with-libiconv、--with-libgcrypt-dir、--with-ssl-dir、--with-bdb、--with-gssapi等を設定してください。
以下のオプションは太古のものです。現在のnetatalk 2.xのconfigureにはありません。
× --with-tags× --with-nls-dir× --with-did× --with-cdb× --with-mangling× --with-flock-locks以下のオプションはnetatalk 2.1beta2のconfigureにはありません。
× --with-logfile (ログファイルは設定ファイルで設定可能だから)× --with-cnid-dbd-txn (これがデフォルトだから)× --with-cnid-db3-backend (廃止)× --with-cnid-hash-backend (廃止)× --enable-sendfile (Linuxだとデフォルトで有効だから)めでたくconfigureが終わったら、構築してインストール。
$ make$ sudo mv /etc/netatalk /etc/netatalk.old$ sudo make install
うーん、ここで説明しなくても資料は沢山あるでしょう。
libiconvを使う人は、--with-libiconvオプションをnetatalkと同一にします。
各OSが使っている文字コードは、次の様になります。
| コード名 | 備考 | |
|---|---|---|
| Mac OS X | UTF8-MAC (NFD, decomposed UTF-8) | Unicodeベース |
| Mac OS 9迄 | MacJapanese (CP10001) | Shift_JISの拡張 |
| Windows NT/2000/XP/Vista/7 | UTF-16 (NFC, precomposed UTF-16) | Unicodeベース |
| Windows 3.1/95/98/ME | CP932 (Windows-31J) | Shift_JISの拡張 |
古いOSはShift_JIS拡張でサーバと会話しますが、新しいOSはUnicodeベースで喋っています。だからUnicodeで統一する方向で考えます。
サーバ側のファイル名をUTF-8にする事で最大限の文字が使えるようになります。
| Mac OS X - netatalk 2.x | netatalk 2.x側がUTF8-MACとUTF8の変換を行なう |
| Mac OS 9迄 - netatalk 2.x | netatalk 2.x側がMacJapaneseとUTF8の変換を行なう |
| Windows NT/2000/XP/Vista/7 - samba 3.x | samba 3.x側がUTF-16とUTF-8の変換を行なう |
| Windows 3.1/95/98/ME - samba 3.x | samba 3.x側がCP932とUTF-8の変換を行なう |
3つの設定ファイルに文字コードの設定箇所があります。日本語環境の場合はMAC_JAPANESEという設定が出来ます。
AppleVolumesファイル群はマウントするボリュームの設定や拡張子とType/Creatorの関連付けを行います。
各ユーザ別の設定は~/AppleVolumesか~/.AppleVolumesで行ない、そのデフォルトはAppleVolumes.defaultで設定します。
全ユーザ共通の設定はAppleVolumes.systemで行ないます。
予め用意されている設定ファイルでは、AppleVolumes.defaultでボリューム設定のみ、AppleVolumes.systemで拡張子の関連付けのみを行なっています。
:DEFAULT: options:usedots,upriv maccharset:MAC_JAPANESE volcharset:UTF8 dperm:0700 fperm:0600 cnidscheme:dbd
netatalk 2.1beta2で:DEFAULTS:となっているのはバグです。:DEFAULT:に書き直してください。
maccharset:はMac OS 9側のファイル名の文字コードです。Mac OS Xからの接続はこの設定に左右されず、UTF8-MACに固定です。
volcharset:はUNIX側のファイル名の文字コードであり、UTF8に設定することでMac OS Xから最大限の文字が使えるようになります。デフォルト値はUTF8なので省略可能です。古い環境だとEUC-JP等を指定する必要があるかもしれません。
また、デフォルトのnetatalkはドットで始まるファイル名があった場合、最初のドットを:2eに置き換えて保存します。例えば「.abc」は「:2eabc」になります。これは、netatalkが予約しているファイル名との衝突を避ける為です。options:usedotsの設定を行なうとこの機能を抑制出来るので、samba側からみたときも同じ「.abc」に見えるようになります。ただしこの設定を行なうと、「.Apple」で始まるファイル名及び「.Parent」がMac OS側から作成出来なくなります。
options:uprivはUNIX風のパーミッションを有効にするオプションであり、dpermとfpermはそれぞれディレクトリとファイルのパーミッションとORを取って保存するものです。Mac OS X 10.5以降はパーミッションが「000」になってしまう場合があるという、というとんでもない問題があるので、この設定を行ないます。この設定例だと、少なくともファイル所有者は確実に読み書き出来ます。また、このオプションにはSnow Leopardからnetatalk 2.0.xにEA付きファイルをコピーしたときにエラーになる問題を回避する効能もあります。
cnidscheme:dbdを指定するとnetatalkの信頼性が高まります。netatalk 2.1ではこれがデフォルトです。詳しくは下の「CNIDの管理」を読んでください。
拡張子とType/Creatorの対応付けはお好み次第でしょう。
ただし、全てのType/Creatorの設定を削除(あるいはコメントアウト)すべきだと、私は考えます。
何故なら、元々Type/Creatorのないファイルがあった場合、これをnetatalkサーバにコピーした時点で設定に従ったType/Creatorが付いてしまうからです。リストアしたときにもこのType/Creatorが付いたままになります。これは完全な復元ではありません。改変です。Mac OS XはTypeの他に拡張子も考慮します。Snow LeopardはCreatorを無視します。本当に対応付けが必要になるのは、クライアントがMac OS 9以前の場合のみです。
なお、2.1beta1以降では全ての行がコメントアウトされています。
参考: Netatalk 2.0 Manual - AppleVolumes.default
参考: Netatalk 2.0 Manual - afpd
- -maccodepage MAC_JAPANESE -unixcodepage UTF8
afpdが扱う文字コードの指定です。ボリューム名、サーバメッセージ、認証あたりで日本語を使うときに重要になります。
-maccodepageはMac OS 9側の文字コードです。Mac OS Xからの接続はこの設定に左右されず、UTF8-MACに固定です。
-unixcodepageはUNIX側の設定ファイルで使う文字コードです。ボリューム名、サーバメッセージ、認証あたりが日本語のときに重要になります。UTF8がデフォルト値なので省略可能です。古い環境だとEUC-JP等を指定する必要があるかもしれません。
参考: Netatalk 2.0 Manual - afpd.conf
netatalk.confは、環境によっては参照されず、代わりに別のファイルが使われる事があります。詳しくは下の「netatalkの起動」をみてください。
ATALK_MAC_CHARSET='MAC_JAPANESE'
ATALK_UNIX_CHARSET='UTF8'
atalkdとpapdが扱う文字コードの指定です。サーバ名、ゾーン名、プリンタ名あたりで日本語を使うときに重要になります。afpd.confでの設定とあわせておくといいでしょう。
ATALK_MAC_CHARSET=はMac OS 9側の文字コードです。Mac OS Xからの接続はこの設定に左右されず、UTF8-MACに固定です。
ATALK_UNIX_CHARSET=はUNIX側の設定ファイルで使う文字コードです。デフォルトではLOCALEになっており、ロケールを元に自動設定されます。最近の環境だと自動的にUTF8になるでしょう。古い環境で自動設定されない場合はEUC-JP等を設定する必要があるかもしれません。
参考: Netatalk 2.0 Manual - netatalk.conf
[global]dos charset = CP932unix charset = UTF-8display charset = UTF-8
dos charsetはDOS/Windows 3.1/95/98/MEからアクセスしたときのファイル名の文字コードです。Windows NT系 (NT/2000/XP/Vista/7)からの接続はこの設定に左右されず、UTF-16に固定です。
unix charsetはUNIX側のファイル名の文字コードです。samba.gr.jpにある文書によれば、LOCALEが日本語EUCになっているようなシステムではUTF-8ではなくEUCJP-MSというパラメータ値を設定することになっています。
display charsetはsmbclientコマンド等が使う文字コードです。古い環境ではEUCJP-MS等を設定する必要があるかもしれません。
参考: Samba 3.0で日本語を利用できるようにしたパッケージ集
また、SMB (CIFS)にはファイルをロックする機能(oplock)というのがあります。SMBクライアント側でファイルをキャッシュして転送量を減らすものです。システム自身がoplockに対応していないとロック中のファイルをUNIX側(netatalk経由も含む)から編集したときにファイルが壊れる可能性があるので、これをを無効にする必要があります。
oplocks = NoLinuxのようにkernel自身がoplockに対応している場合はoplockが問題なく使えるので次のようにします。
kernel oplocks = Yesoplocks = Yesoplockの動作状況はswatのstatus画面やsmbstatusコマンドで確認出来ます。samba経由で一度ロックしておき、UNIX側またはnetatalk側から同じファイルをいじったときにロックが外れる事を確認することをお勧めします。
しかし、Windowsから代替データストリームを使う為にstreams_xattrを使っている場合、kernel oplocksと共存出来ないので次のようにします。
kernel oplocks = Nooplocks = No vfs objects = streams_xattr
ややこしい...
また、netatalk/Mac OS 9/Mac OS Xが作る隠しファイルをsamba経由で見えないようにする事が出来ます。
veto files = /.AppleDB/.AppleDouble/.AppleDesktop/Network Trash Folder/TheFindByContentFolder/TheVolumeSettingsFolder/Temporary Items/.TemporaryItems/.DS_Store/.VolumeIcon.icns/Icon?/.FBCIndex/.FBCLockFolder/この設定を行なうと、samba経由でフォルダを削除しようとしたときにエラーになる事があります。フォルダ内にveto filesで設定したファイルが隠れているからです。そこで次のように設定します。隠したファイルをまとめて削除してくれるようになります。
delete veto files = Yessambaのvfsモジュールにnetatalkというのがあります。
vfs objects = netatalk
これを使うと、samba経由でファイルを操作したときに孤立(orphan)してしまう.AppleDoubleディレクトリ内のファイルを自動で消してくれます。が、UNIX側から直接rmした場合等は結局残ってしまうわけですから完璧な対処法とは言えないでしょう。 しかも、このモジュールはほとんどメンテされていないので、まともに動くかどうかわかりません。.AppleDoubleの整理はnetatalkに付属するcleanappledouble.plスクリプト(2.1beta1以降ではdbd -r)をcronで定期的に実行するのが良いと思います。
参考: Chapter 20. スタッカブルVFSモジュール
sambaの設定では、samba 2.xの頃はUTF8、samba 3.xではUTF-8です。
一方、netatalkの設定ファイルのサンプルにはUTF8と書かれています。マニュアルには、iconv()が対応している文字コードは全部使えると書かれていますから、$ iconv -lで表示されるものは全部使えるわけです。UTF8以外だとログにワーニングが出る事がありますが、エラーではありません。
以上はUNIX側のファイル名文字コードをUTF-8に設定した場合を想定して説明しているわけですが、古い環境だとUTF-8じゃない場合もあるでしょう。
| netatalk 2.0.4以降 | samba 3.x | |||
|---|---|---|---|---|
| maccharset: | volcharset: | dos charset = | unix charset = | vfs objects = |
| MAC_JAPANESE | UTF8 | CP932 | UTF-8 | <none> |
| netatalk 2.0.4以降 | samba 3.x | |||
|---|---|---|---|---|
| maccharset: | volcharset: | dos charset = | unix charset = | vfs objects = |
| MAC_JAPANESE | Shift_JIS | CP932 | CP932 | <none> |
| MAC_JAPANESE | EUC-JP | CP932 | EUCJP-MS | <none> |
| netatalk 2.0.4以降 | samba 3.x | |||
|---|---|---|---|---|
| maccharset: | volcharset: | dos charset = | unix charset = | vfs objects = |
| MAC_JAPANESE | MAC_JAPANESE | CP932 | CP932 | <none> |
| netatalk 2.0.4以降 | samba 3.x | |||
|---|---|---|---|---|
| maccharset: | volcharset: | dos charset = | unix charset = | vfs objects = |
| MAC_JAPANESE | CP932 | CP932 | CP932 | <none> |
| MAC_JAPANESE | EUCJP-MS | CP932 | EUCJP-MS | <none> |
| netatalk 2.0.4以降 | samba 3.x | |||
|---|---|---|---|---|
| maccharset: | volcharset: | dos charset = | unix charset = | vfs objects = |
| MAC_JAPANESE | Shift_JIS | CP932 | Shift_JIS | <none> |
| MAC_JAPANESE | EUC-JP | CP932 | EUC-JP | <none> |
| netatalk 2.0.4以降 | samba 3.x | |||
|---|---|---|---|---|
| maccharset: | volcharset: | dos charset = | unix charset = | vfs objects = |
| MAC_JAPANESE | ASCII | CP932 | CP932 | cap |
| MAC_JAPANESE | ASCII | CP932 | CP932 | hex |

Mac OSがバージョンアップするにしたがってAppleTalkの機能は縮小し、Mac OS X 10.6 Snow Leopardで完全廃止になっています。
つまり、恐ろしく古いMacを持っていない限り、atalkdを起動する意味はありません。レトロな趣味の方はatalkdを御活用ください。最近でもSystem 6から接続している人がいます。
拡張属性 (EA)って何? と思う方は以下のページを参照してください。Tiger以降でサポートされており、Snow Leopardでは極めて重要です。
netatalk 2.0.xはAFP 3.1迄をサポートします。このバージョンはEA未対応です。
netatalk 2.1beta1以降ではAFP 3.2をサポートします。このバージョンはEA対応です。
Leopard迄は、EA未対応サーバにEA付きファイルをコピーしたとき、EAが消えてなくなりました。
Snow Leopardでは動作が変更になりました。例えば、EA付きのabc.txtというファイルをEA未対応netatalkにコピーすると次のような4つのファイルがサーバ上に作成されます。
abc.txt._abc.txt.AppleDouble/abc.txt.AppleDouble/._abc.txt
1つめは、ファイル本体。
2つめは、EAを保存するために、Snow Leopardが勝手に作りやがったAppleDoubleフォーマットのファイル。
3つめは、abc.txtに対応するリソースフォークとかタイムスタンプを保存するために、netatalkが作成したAppleDoubleフォーマットのファイル。
4つめは、._abc.txtに対応するnetatalkが作成したAppleDoubleフォーマットのファイル。
つまり、EA付きファイルを1つ作ると、それに付随するAppleDoubleファイルが3つ出来ます。
しかもこの動作のとき、Snow Leopardはパーミッションの設定を間違えるため以下のエラーが出るケースが非常に多いです。
Snow Leopardは._abc.txtを作成した直後に、それのパーミッションを000に設定します。当然アクセス権がありません。明らかにSnow Leopardのバグです。この問題を回避するには、fperm: 600を設定してください。
netatalk 2.1beta1以降は既にEAに対応しているので._abc.txtといった妙なファイルは作られません。
netatalk 2.0.4迄のバージョンは、Time Machine未対応であり、無理矢理使うためには面倒な作業が伴いました。以下のページを参照してください。
参考: Time Machine with Netatalk その1
netatalk 2.0.5以降はTime Machine対応になっており、ラクチンです。不具合は全く聞いたことがないです。手順は以下のとおり。
tmを追加。なぜマウントしなければバックアップ先として選べないかというと、ちゃんと理由があります。クライアントがマウントするとき、「ボリュームの情報をよこせ」と問いかけ、その返答に「Time Machine対応です」というのがあるからです。
マウントしなくてもTime Machine対応であることを知らせる方法もあります。Bonjourにて「Time Machine対応ボリュームがここにあるよ」と、予め宣伝しておく方法です。この手法に関しては、いまだ研究の余地があります。詳しくは以下のページを参照してください。
参考: Time Machine with Netatalk その2
MacOSの為に作られたHFS+というファイルシステムでは、ファイルやフォルダにCNID (Catalog Node ID)と呼ばれる番号を付けて管理しています。ファイルのCNIDをFile ID、ディレクトリのCNIDをDirectory IDと呼ぶ場合もあります。これはAFPの場合も同様です。
netatalkでは、Berkeley DBを使って .AppleDB/というディレクトリでCNIDのデータベースを管理しています。 これに関する設定はAppleVolumesファイルで設定します。netatalk 2.0でdbdを使うとかなり安定しますが、2.1beta2では大幅変更があり更に安定しています。
何らかの理由で.AppleDB/の中のファイルが壊れたり、Berkeley DBのバージョンが合わないと、クライアントからうまく接続出来ないといったトラブルが発生します。
CNIDの管理方法は何種類かあり、AppleVolumesファイルで設定出来ます。デフォルトでconfigureしたnetatalkの場合は3種類です。
netatalk 2.0.xのデフォルトはcdbになっていますが、リードオンリーである場合を除き、dbdを使う事を強くお勧めします。cnid_metadの起動を忘れないで下さい。起動してないとうまく接続出来ません。dbdの場合は実質的にデータベースは壊れません。壊れているかどうかは自動的にチェックされます。
データベースが壊れた場合、修復するツールとしてcnid_maintが付属していますが、これは自分の環境に合わせて書き換えないと動かないし、ドキュメントも用意されていません。cnid_indexというコマンドもあり、これはちゃんとman pageがあります。試してみたところ、完璧に修復してくれるわけでもないようです。一番確実なのは、netatalkを停止してから.AppleDB/ディレクトリを削除し、netatalkを再起動することです。こうすると新たに.AppleDB/ディレクトリが作られます。
参考: Netatalk 2.0 Manual - AppleVolumes.default
参考: Netatalk 2.0 Manual - cnid_index
参考: Netatalk 2.0 Manual - cnid_metad
netatalk 2.1beta1以降のデフォルトはdbdになっています。メンテ用コマンドの名前もdbdです。このコマンドは使いやすいです。また、一度netatalk 2.1にしてしまえば、それ以降のバージョンアップでBerkeley DBのバージョンが合わなくても自動的に修復します。
AFPのユーザ認証方法(UAM)は、afpd.confの-uamlistオプションで設定します。netatalk 2.0.4以降ではデフォルト値はuams_dhx.so,uams_dhx2.soになっています。
UAMにはパスワードを暗号化するもの、しないもの、そもそもパスワードを使わないもの等、色々あります。古い認証方法は8文字制限があるので注意してください。
| 名前 | netatalkのモジュール | 説明 |
|---|---|---|
| No User Authent | uams_guest.so |
ユーザ認証なし。パスワードは使わない。すなわちゲスト接続。 |
| Cleartxt Passwrd | uams_cleartxt.so |
クリアテキスト(平文)パスワード。暗号化なし。8文字制限。Leopard以降は使用禁止。 |
| Randnum Exchange | uams_randnum.so |
乱数交換。56ビットDES。弱い暗号化。8文字制限。 |
| 2-Way Randnum | uams_randnum.so |
双方向乱数交換。56ビットDES。弱い暗号化。8文字制限。 |
| DHCAST128 | uams_dhx.so (DebianやUbuntuには入ってない) |
Diffie-Hellman交換。別名DHX。128ビットSSL。強い暗号化。 |
| DHX2 | uams_dhx2.so |
Diffie-Hellman交換2。更に強い暗号化。 |
| Client Krb v2 | uams_gss.so |
Kerberos V認証。 |
| Recon1 | なし | 再接続。 |
uams_randnum.soは、afppasswdファイルを使ってパスワードを管理します。AFPクライアント側からパスワード変更すると、このファイルが書き換えられる筈です。つまりUNIXパスワードとは別管理です。
uams_cleartxt.soとuams_dhx.soとuams_dhx2.soは、netatalkのコンパイル時のオプションにより、UNIXのpasswdファイル、shadow passwd、PAMのどれかを使うことになります。
Recon1は今のところnetatalkに実装されていません。
uams_gss.soは使った事がなくわかりませんので、とりあえずリンクだけしておきます。
DHXパスワードを使う為には、OpenSSLライブラリを使ってnetatalkをコンパイルする必要があります。DHX2パスワードを使う為にはlibgryptライブラリが必要です。
DebianやUbuntuのnetatalkはライセンスの関係でuams_dhx.soが入っていません。Mac OS X 10.2以前はuams_dhx2.soが使えないので注意が必要です。セキュリティ的に不安なuams_cleartxt.soを使うか、自分でビルドしてuams_dhx.soを使えるようにするか、どちらかです。
あと、netatalk 2.1beta1以降ではLDAPを使って云々... ですが、全く知識がないのでパス。
sambaのユーザ認証は、smb.confのsecurity =で色々と設定出来ます。user, share, server, domain, adsが選べますね。
パスワードの暗号化は大昔のWindows(記憶によれば10数年前)で既に必須になっています。
samba 3.0.xでは以下の設定がデフォルトになっており、暗号化/平文の両方が使えます。
encrypt passwords = yes
これをnoにすると平文パスワードだけになるので、最近のWindowsから接続出来ません。Windowsのレジストリをいじって平文パスワードを使えるようにする方法もありますが、お勧め出来ません。
samba 3.2.xではデフォルトのパスワード設定が厳しくなっています。以下のパラメータで調整出来ます。
lanman auth = yes/nontlm auth = yes/noclient NTLMv2 auth = yes/noclient lanman auth = yes/noclient plaintext auth = yes/no
netatalkの起動は、まずrcスクリプトで有効にしておいて、netatalk.confでどのdaemonを動かすか決めるという事になっていますが、OSやディストリビューションで微妙に方法が違います。特に、netatalk.confを使わず別ファイルが参照される環境もあるので注意が必要です。
configureスクリプトには--enable-redhat、--enable-suse、--enable-gentoo、--enable-cobalt、--enable-netbsd、--enable-debianといったオプションがあるので、これをちゃんと選べば環境に応じたrcスクリプトがインストールされる筈です。
RedHat, Fedora, CentOS等のRedHat系の場合、configure optionは--enable-redhatを使います。
install後は# chkconfig --add atalkが必要かもしれません。起動スクリプトは/etc/rc.d/init.d/atalkです。serviceコマンドが使えるでしょう。
netatalk.confは有効です。
DebianやUbuntuの場合、configure optionは--enable-debianです。debパッケージを確認したところ、スクリプトは/etc/init.d/netatalkです。
netatalk.confを使わず、代わりに/etc/default/netatalkを使います。
FreeBSD 6.2と7.0のportsを確認したところ、rcスクリプトは/usr/local/etc/rc.d/netatalkでした。
各デーモンの起動は/etc/rc.confで以下のように設定します。
netatalk_enable="YES"atalkd_enable="NO"papd_enable="NO"cnid_metad_enable="YES"afpd_enable="YES"timelord_enable="NO"
/usr/local/etc/netatalk.confで最大クライアント数、 zone名、NBP名、ゲスト接続のユーザのマッピング等が設定出来ます。
configure optionは--enable-netbsdです。NetBSD 3.1と4.0のpkgsrcを確認したところ、rcスクリプトは/usr/pkg/share/examples/rc.d/にサンプルがあるので/etc/rc.d/にコピーします。
各デーモンの起動は/etc/rc.confで以下のように設定します。
atalkd=NOcnid_metad=YESafpd=YESpapd=NOtimelord=NOSolarisはconfigureオプションにありませんが、ちゃんと動きます。AppleTalkを動かす場合はDDPドライバをインストールします。
# cd sys/solaris# gmake kinstall
rcスクリプトは/etc/init.d/atalkです。Solaris10ならsvcadmコマンドが使えます。
netatalk.confは有効です。
クライアントから接続して操作してみるのは当然ですが、転ばぬ先の杖として以下をチェックしておくことお勧めします。
サーバとクライアントの双方で、アクセス権の確認をすべきです。特にnetatalkの場合、サーバ側のls -l、クライアント側のls -l、Finderの「情報を見る」のそれぞれで見え方が違うので面食らいます。
また、sambaはACL対応していますが、netatalk 2.0.xはACLに対応していません。netatalk 2.1beta1以降ではSolarisでZFSを使ったときのみACLに対応します。
別ユーザで接続してみて他人のファイルを読み書き出来るかどうかもチェックしておくべきです。
ASCIIは大抵大丈夫でしょうが、日本語ファイル名、多言語ファイル名、長いファイル名、禁止文字の確認をすべきです。
netatalk 2.0.xはEA(拡張属性)に対応していません。Mac OS X 10.5 Leopardからnetatalkにコピーした場合はEA消失します。10.6 Snow Leopardからだと、隠しファイルをつくってそこに保存します。これは非常に気持ちわるい動作です。netatalk 2.1beta1以降はEA対応しているのでこちらがお薦めです。
samba 3.0.x以前は代替データストリーム (alternate data stream, ADS)に対応していないのでWindowsからsambaにコピーした時点で消失します。samba 3.2.xは2種類の方法で代替データストリームに対応しています。
vfs objects = xattr_tdbと設定すると、代替データストリームをtdbのデータとして別の場所に保存します。
vfs objects = streams_xattrMacとWindowsの双方から操作してみて、リソースフォークやカスタムアイコン、代替データストリーム等が消える条件を知っておくべきです。
Macには作成時刻/変更時刻/最終アクセス時刻の3つがありますが、UNIXには作成時刻と変更時刻の区別がありません。netatalkではAppleDoubleファイルに時刻を格納して対応しています。samba側、UNIX側から作成したファイルにはAppleDoubleファイルがないわけですから、作成時刻と変更時刻が同じになります。
HFS+やAFPは1s単位で時間を刻みます。
NTFSは100ns単位で時間を刻みますが、FATでは2s間隔しか扱えません。sambaは設定次第でNTFS互換にもFAT互換にもなります。samba 3.5.0で、100ns単位で扱えるようになりました。
UNIX側はファイルシステムによって時間の解像度が異なります。例えばext3は1sですがext4は1nsです。
サーバとクライアントでタイムスタンプが完全に一致するとは思わない方がいいです。
サーバ側でシンボリックリンクやハードリンクを作ると、netatalk 2.0.xでもsambaでも問題が発生します。netatalk 2.0.xは同一ファイル、同一フォルダであることを認識出来ないので、CNIDに混乱が生じます。sambaは同一フォルダであることを認識出来ないので、シンボリックリンクの方を消したつもりでも本体側のフォルダの中身を消してしまいます。
AFPクライアントからnetatalk 2.0.xへシンボリックリンクやエイリアスを作ると正常に動作しますが、サーバ側でみると思ったようなファイルになっていない筈です。ハードリンクはうまくいく場合もありますが、サーバ側のファイルシステムの制限で出来ない事もあります。例えばディレクトリのハードリンクです。なお、netatalk 2.1beta1以降はシンボリックリンクが正常に動くようになりました。
SMBクライアントからショートカットを作った場合は正常に動作すると思います。
AFPクライアントからAFPサーバへの接続は、次のような手順で行なわれます。
つまり、この問い合わせ(GetStatus)への返答内容が間違っていると、様々な問題が発生します。
netatalkにはasip-status.plというコマンドが付属しています。これはAFPサーバにTCP/IPでGetStatusを送り、その返答内容を表示するものです。次はその例です。(参考例なので、今となっては無駄な設定も混ざっています)
# asip-status.pl サーバのIPアドレスAFP reply from myservername:548Flags: 1 Cmd: 3 ID: 57005Reply: DSIGetStatusRequest ID: 57005Machine type: NetatalkAFP versions: AFPVersion 1.1,AFPVersion 2.0,AFPVersion 2.1,AFP2.2,AFPX03,AFP3.1,AFP3.2UAMs: DHX2,DHCAST128Flags: SupportsCopyFile,SupportsServerMessages,SupportsServerSignature,SupportsTCP/IP,SupportsSrvrNotifications,SupportsOpenDirectory,SupportsUTF8Servername,SupportsSuperClientServer name: myservernameSignature:a6 29 d7 5b e0 82 51 3e b0 6f 2d 19 dc 10 9e f8 .).[..Q>.o-.....Network address: 192.168.1.130 (TCP/IP address)Network address: myservername.example.org (DNS address)Network address: myservername.example.org (SSH tunnel address)Network address: 65280.129 (ddp address)UTF8 Servername: myservername
Machine type:は単なる参考情報です。大昔のnetatalkはMacintoshと名乗りましたが、現在は正直にNetatalkと名乗ります。
AFP versions:は対応しているAFPのバージョンです。1.1から2.1迄はAppleTalkであり、2.2以降はTCP/IPです。
UAMs:は対応している認証方法です。詳しくは上の「ユーザ認証」を参照してください。
Flags:はサーバが対応している様々な機能を表します。
Server name:とUTF8 Servername:はサーバ名です。前者はMacJapaneseであり、後者はUTF8-MACです。普通はASCIIの名前にするでしょうから、両者は同じでしょう。ここがlocalhostになっていると、問題が発生します。
Signature:は、サーバを区別する為のものです。同じサーバに二重接続するのを防ぐ為にあります。逆に、何かの間違いで同一のSignatureのサーバがあると、一方にしか繋がらないという問題が発生します。特に、
00 01 7f 00 00 01 7f 00 00 01 7f 00 00 01 7f 00 とか
00 01 7f 00 00 00 00 00 00 01 7f 00 00 00 00 00
になっている場合は問題です。これはIPアドレス127.0.0.1から生成されたものです。
Network address:は接続するサーバのアドレスです。適切なアドレスになっている事を確認してください。ここがlocalhostとか127.0.0.1になっていると問題があります。この問題は/etc/hostsの記述に由来します。
悪い例 ×
127.0.0.1 myservername localhost.localdomain localhost良い例 ○
127.0.0.1 localhost192.168.1.130 myservername myservername.example.org参考: 2台以上あるnetatalkサーバの1台目にしかアクセス出来ない
この間違った/etc/hostsの記述は、sambaでも問題となります。
参考: 日本Sambaユーザ会 - Sambaが動作しないときの診断方法
以上の説明で、localhostとか127.0.0.1がヤバい事がおわかりでしょう。この現象に遭遇した場合は、サーバのhostnameや/etc/hostsが適切かどうか確認してくだい。
また、AppleTalkやAFP over SSHを有効にしている場合、それらに対応するNetwork address:が表示される事も確認してください。
Mac OS X 10.3から10.4では、サーバにAFP over SSHで安全に繋ぐ機能がありました。afpd.confに
-advertise_ssh -fqdn サーバ名
と書いておけばAFP over SSHで接続出来ます。ただしnetatalkのログを見ても普通のAFP接続と区別が付かないので、パケットをダンプしてSSHが使われている事を確認する必要があります。psコマンドでsshが動いているのを見る方法もあります。
ところがMac OS X 10.5 LeopardでAFP over SSHが廃止になりました。
今のところ確認している唯一の方法は、netatalkのマニュアルに書かれている手法です。つまり、Terminal.appで
ssh -l $USER $SERVER -L 10548:127.0.0.1:548 sleep 3000
を実行してから、afp://127.0.0.1:10548に接続します。
これならAFP over SSHでnetatalkに接続出来ます。(ただし重いです)
サーバ側でsshを使い、クライアント側はトンネリングする為のソフトを入手してWindowsにインストールし、SMB over SSHを実現する方法がありますが、結構手間がかかります。
samba 3.2.xだと暗号化通信がサポートされたようですが、よく知らないのでパス。
.AppleDB/に異常があるときに、よくある症状です。netatalk 1.xからバージョンアップしたときにこのディレクトリを残していた場合とかですね。上の「CNIDの管理」に書いた手法で修復してください。
上の「asip-status.plコマンドでnetatalkの確認」を参考にしてください。
configureの前のLD_LIBRARY_PATHと、configureオプションの--with-libiconvを確認してください。
あと、設定ファイルで正しく文字コードの設定を行なっているか確認してください。
netatalk 2.0.4以降のログはsyslog管理になっています。syslog.conf等を見てどのファイルに落ちるか確認してください。また、configureオプションの--with-logfile=でログファイルを指定できます。メーリングリストでこの機能はバギーだという事になっています。この場合はsyslogと指定ファイルの両方にログが落ちます。また、afpd.confの-[un]setuplogでも設定出来ます。netatalk 2.1beta1以降はログファイルを指定できます。
一方、sambaのログはconfigureオプションの--with-logfilebase=でディレクトリを指定出来ます。ファイル名はsmb.confのlog file =でマクロを使って指定出来ます。ただし、ソース中でlog.smbdとlog.nmbdというファイル名が決め打ちになっており、起動時のsmb.confを読み込む前の段階では、これら2つのファイルにログが落ちます。RedHat系のディストリビューションではソースにパッチが当たっており、smbd.logとnmbd.logというファイル名に変わっているので注意してください。また、configureオプションに--with-syslogというのがありますが、experimental扱いです。あと、smb.confのlog level =にも注意してください。値が小さすぎるとほとんどログに残らないし、大きすぎると動作が遅くなります。
そもそも、Mac OS Xのパーミッションの動作が変です。Terminall.appからls -lで見た場合と、Finderの「情報を見る」で確認出来るパーミッションが異なります。更にFinderからは実行属性が扱えません。
更にMac OS X 10.4 Tiger迄と10.5 Leopard以降で動作が違います。Leopard以降ではユーザひとりで使っているような場合は問題ありませんが、複数ユーザで使っている場合、同一groupの他ユーザがアクセス出来ないかもしれません。これはAppleVolumesファイルでuprivオプションを使うと緩和出来ます。UNIXパーミッションを継承するものです。Leopard以降の「情報を見る」でアクセス権を変更するとパーミッションが異常になりファイルにアクセス出来なくなるので注意してください。こうなるとchmodコマンドで直すしかありません。
netatalk 2.0.4以降では、dperm、fpermというオプションが追加されています。これはクライアントが要求してきた属性とORを取るものです。例えば、dperm:700 fperm:600と設定しておけば、少なくとも所有者は確実に読み書き出来ます。
なお、Windowsからsambaにコピーしたファイルに実行属性がついてしまうのは別の現象なので混同しないで下さい。FATやNTFSにあるアーカイブ属性がUNIXのファイルシステムにはないので、代わりに実行属性に割り当てているのが原因です。アーカイブ属性を継承する必要がないのならsmb.confでmap archive = noを使うとよいです。
netatalk 2.0.xはACL (Access Control List, アクセス制御リスト)に対応していません。
2.1beta1以降はSolarisのZFS上でのみ対応しています。他のOSでは使えません。
Windows 95/98/MEとMac OS 9以前の間では「―〜‖−¢£¬」が共通に扱えません。
色々考えたんですが、Unicodeベースである限りどうしようもないです。
そもそもnetatalk/sambaを経由しなくても、Windows NT/2000/XPとMac OS X間でファイル交換しても同じ問題が出るのですから。
機種依存文字なんかどうでもよいという考えなら、samba側をEUCJP-MS、netatalk側をEUCJPにするという手法があります(或はCP932とShift_JIS)。
全OS、全アプリケーションが完全Unicodeベースになれば気にする事もなくなります。
「うワヰヱヲ」に濁点が付いた文字はMac OS 9からnetatalkへコピー出来ない問題は、Mac OS 9側の問題です。今更Mac OS 9がアップデートされるとも思えないので、諦めましょう。
sambaにはsmbclientコマンドが付いてきますが、netatalkにafpclientコマンドはありません。
TCP/IPベースでAFPのボリュームをファイルシステムとしてマウントするafpfs-ngというのがあります。ftpコマンドのようなafpcmdも付属します。テストしてみましたが、まだまだ不完全です。AppleTalkは使えません。ファイル名はUnicodeのみでMacJapaneseは扱えません。Unicodeの合成(precompose)の処理に問題があり日本語ファイル名がまともに扱えないので開発者にパッチを送ってありますが、いつまで経ってもバージョンアップされません。まともに使えるのはせいぜいASCIIファイル名だけでしょう。リソースフォークは扱えないのでデータフォークのみです。
alexthepuffin - afpfs-ng 0.8 An open source client for Apple Filing Protocol
SourceForge.net: afpfs-ng
単体のafpclientというものならありましたが、現在リンク切れです。これが対応しているのはAFP 1.1という非常に古いプロトコルなので、Mac OS 9やnetatalkには接続出来ますがMac OS Xには出来ません。AppleTalkのみでありTCP/IPでは接続出来ません。ファイル名は31バイト制限があります。ただ、デバッグモードがあるので実験には便利かもしれません。
単体のafpclientコマンド:
Afpclient - AppleTalk Filing Protocol client (オリジナルはリンク切れ)
web.archive.orgにあるミラー:
Afpclient - AppleTalk Filing Protocol client (ミラー)
私が保管していたものを置いておきます:
afpclient.tar.gz
Mac OS X 10.4 Tiger迄のバージョンでは、AFP 3.xクライアントとして動作しているとき、decomposed UTF-8で255バイトを越えるファイル名を正常に扱えません。
これはnetatalkではなくMac OS X側の問題です。ちなみにMac OS XでSMB (CIFS)を使ったときも同様の現象が起きます。
この仕様(バグ)にあわせて、netatalkはファイル名を255バイト内にmangleしてクライアントに報告します。
Mac OS X 10.5 Leopardでは直っているのですが、netatalkは古いMac OS Xにあわせた仕様なので、255バイトを越えたファイル名がmangleされてしまいます。
Mac OS X 10.4迄の場合、例えばローカルのHFS+に「ああああ…」という風に「あ」が86個以上あるファイルがあったとして、これをAFP 3.xのサーバにコピーしようとするとエラーになります。このとき、サーバに対して全くリクエストを送っていません。つまりが自分でエラーを出しているのです。相手のサーバがnetatalkだろうとMac OS Xだろうと結果は同じです。
逆に、Mac OS XがAFP 3.xサーバとして動作しているときは、バージョンに関わらず255バイトを越えるファイル名でもちゃんと報告してきます。これを受け取った側のMac OS X 10.4迄のバージョンは、妙な動作をします。Finderからはファイル名が変なところでちぎれて見えるし、ターミナルで$ ls -wしてみると、エラーが出ます。これはDarwin(UNIX)の制限が255バイトであることに関係しているでしょう。
AFP 3の仕様書では、ファイル名の長さ制限は書かれていません。pathnameの長さは実質的に無制限となっています。パケットを解析してみると、pathname長さを示すところが2バイトあるので、0xFFFF=65535バイト迄表現出来る筈です。
Mac OS XからのアクセスはMacJapaneseではなくUnicodeになります。このUnicodeのU+010000以上の文字が扱えません。この領域はUnicodeのバージョンが上がったときに追加されたもので、CJK Unified Ideographs Ext.Bと呼ばれる漢字の異体字が含まれます。具体的に言うと、
等が扱えません。netatalk 2.1beta1以降では使えるようになっています。
AFP 3の仕様書をみると、ファイル名の扱い(type)には三種類あります。
| Type1 | short name | DOS互換/8.3形式 |
| Type2 | long name | HFS互換/日本語環境ではMacJapanese/31バイト制限 |
| Type3 | unicode name (AFPname) | Unicode (decomposed UTF-8)/実質的に長さ制限なし (パケット解析すると65535バイト制限) |
我々が普段「短い名前」と言っているのは、仕様書上では「long name」であり、「長い名前」と言っているのは「unicode name」或は「AFPname」と呼びます。
Appleのページに説明があります。
B ツリーキーの比較ルーチン(Unicode 文字列を比較する)の複雑さを緩和するために、HFS Plus では Unicode 文字を完全に分解した形式にして、合成文字を標準の順番で格納することを規定しています。
正規化処理を行なう場合、NFDの方がNFCよりも速いんです。
しかしだねえ、そもそもファイル名を正規化する必要性はあるのか? 正規化ってのは、文書内での問題を解決する目的ではないのか?
AppleのTechnoteのページにUNICODE DECOMPOSITION TABLEがありますが、参考にしないでください。
AppleのTecknoteに載っているテーブル:
UNICODE DECOMPOSITION TABLE
Unicode 2.xベースのテーブルなので、ギリシャ拡張文字の順序等がおかしいです。Mac OS X 10.2以降はUnicode 3.2規格なのでこのテーブルと一致しません。じゃあMac OS X 10.1以前はどうかというと、バギーなので変換テーブルすら作れないです。
Mac OS XでローカルディスクにMacRoman由来の文字のファイルを作り、Mac OS 9でみると、一部の文字が変な化け方をします。
例えば、「登録商標記号」(まるR)は、「ィ」(HALF WIDTH KATAKANA i)に見えます。
一体何が起きているのかは、MacRoman-Unicode変換表とMacJapanese-Unicode変換表を比較すると気付きます。
参考: unicode.orgにあるMacRomanの資料
参考: unicode.orgにあるMacJapaneseの資料
つまり次のような現象です。
結果として、同じフォルダに「登録商標記号」のファイルと「ィ」のファイルがあったら、区別がつかなくなります。マウスでダブルクリックしても一方しか開けません。本来ならば、MacJapaneseにないんだからmangleすべきでしょう。(古いOSとの互換性を考えたらこうなっちゃったとも考えられますが…)
じゃあ、netatalk 2.0.4の場合はどうかというと、こういう問題は発生しません。MacJapaneseにない文字があったら必ずmangleします。
そもそもnon-ASCIIのファイル名/フォルダ名を使うのが邪道である。美しくない。根性を叩き直すべきである。だから禁止したい。私もそう思います。
netatalkに1行パッチを当てるとmaccharset:ASCIIという設定が可能になるので、non-ASCIIのファイル名/フォルダ名を作ろうとした時点でエラーにする事が出来ます。
が、パッチは公開しません。
クライアントからnetatalk上に新しくフォルダを作るとき、「名称未設定フォルダ」という日本語の名前で作ろうとするので、その時点で失敗します。フォルダが作れないサーバに価値を見出せません。これはsambaとて同じことです。
このページでは特に触れていないようなネタや速報は、blogの方に書く事にしました。
2004.10.09 - 初版2004.10.10 - Appleのmangleについて追加2004.10.11 - 設定方法について追加、その他2004.10.12 - netatalk 2.0.0に対応2004.10.13 - インストール方法を追加、設定方法の説明が間違ってたので修正2004.10.14 - 設定方法の説明を詳しくした2004.10.17 - AppleDoubleと拡張子の扱いに言及。ファイル共有テストキットを用意。2004.10.25 - catsearchパッチとcreator1パッチの解説を追加2004.10.28 - netatalk 2.0.1速報を追加2004.10.29 - netatalk 2.0.1に対応、サンプルに「はしごだか」「チルダ」「オーバライン」を追加2004.11.01 - CJK Unified Ideographs Ext.B の問題に言及2004.11.02 - サンプルに「吉」の異体字を追加2004.11.03 - glibcとlibiconvの説明を追加2004.11.08 - netatalk 1.x / samba 2.xからのデータの変換方法、glibcとlibiconvの説明を強化、サンプルに「―‖¢¬」を追加、その他2004.11.10 - sambaが3.0.8で変わった部分に言及、その他2004.11.20 - samba 3.0.9とOpenSLP 1.2.0, 1.3.0とBerkeley DB 4.3.21に言及2004.11.24 - MacRomanとMacJapaneseの比較表を追加2004.12.05 - UTF8とUTF-8の違いの説明が間違っていたので修正2004.12.08 - smb.confのdisplay charsetパラメータの説明を修正2004.12.17 - samba 3.0.10で動作確認2004.12.24 - Solaris 9の情報を追加、Berkeley DBのバージョンを推奨の4.2.52に戻した2004.12.25 - Solaris 9のslpdの問題の対処法を説明、SolarisのDDPドライバの説明を修正2004.12.28 - Solaris 9に特化したページを作成2005.01.04 - netatalk 2.0.2に対応2005.02.18 - samba 3.0.11で動作確認。Mac OS X 10.3.8で動作確認。mangleの説明を追加。極めて長いファイル名の説明を追加。ファイル共有テストキットをバージョンアップ。2005.03.17 - cjk.fix.patchを公開。CAP形式非互換を説明。「うワヰヱヲ」に濁点の問題を説明。ファイル共有テストキットをバージョンアップ。2005.04.01 - oplocksとveto filesの説明を追加。samba 3.0.12と3.0.13のdelete veto filesの異常に言及。2005.04.07 - 文字コード設定の解説を詳しくした。2005.04.09 - ハングル等の問題を指摘。2005.04.16 - Mac OS X 10.3.9で動作確認。samba 3.0.14aでdelete veto filesの問題を再確認。2005.05.18 - netatak 2.0.3に対応。2.0.3用cjk-patch公開。Mac OS X 10.4.1で動作確認。2005.05.21 - Macから正常にアクセス出来ない場合の説明を詳しくした。ACLの説明を追加した。2005.05.24 - afpclientの説明を追加。2005.06.27 - こっそりcompose.patchを公開。2005.07.02 - compose.patchをnetatalk-devel MLに出したものに入れ換え。2005.07.06 - AppleVolumes.systemの設定を追加。トラブルシュートを追加。その他。2005.07.07 - 何故だか知らないがconfigureオプションを間違って説明しているページが多いので、解説を追加。2005.07.23 - compose.patchが適用されたutil_unistr.c Revision 1.3を紹介。2005.07.27 - サンプルに多言語のものを追加。Mac OS X 10.4.2、Windows XPで動作確認。その他。2005.07.28 - sambaのクオート付きファイルの異常を指摘。2005.08.06 - options:usedotsの解説を追加。その他。2005.08.24 - samba 3.0.20で動作確認。2005.09.01 - netatalk-2.0.3-cjk-2.patch.gzを公開。2005.09.15 - non-ASCIIのボリューム名をMac OS Xでマウント出来ない問題を指摘。2005.09.18 - non-ASCIIのボリューム名を扱えるようにするnon-ascii-volume.patchを暫定公開。2005.09.23 - 雑談を追加。non-ASCIIのボリューム名の情報を更新。2005.09.29 - non-ascii-volume.patch.gzを適用。cvsに言及。2005.11.20 - ファイル名検索がおかしい話を追加。2005.12.06 - non-ASCIIを完全に禁止する話を追加。その他。2005.12.23 - samba 3.0.21でのhash2の異常に言及。その他。2006.01.06 - UNIX側でのlsコマンドの表示例を追加。その他。2006.03.12 - 検索問題を解決するcatsearch-terminator.patch.gzを暫定公開。2006.05.14 - PAMを使ってnetatalkとsambaのユーザ認証を統合する説明を追加。options:usedotsのときにファイルが見えない場合がある説明をし、netatalk-2.0.3-visibledots.patch.gzを公開。UNIXデーモンアイコンを無効にするnetatalk-2.0.3-no-uicon.patch.gzを公開。2006.05.25 - Photoshopの問題に言及。2006.06.29 - Photoshopの問題が解決したらしいので記述を変更。2006.07.06 - パーミッションが継承されない話を追加。その他。2006.08.02 - usedotsの問題の説明を詳しくした。その他。2006.08.08 - ログファイルの話を追加。その他。2006.08.11 - netatalk-2.0.3-visibledots.patch.gzを削除し、remove_invisible.patch.gzのありかにリンク。既にパッチが存在しているのを見落としていた。内容は完全に同一のパッチです。2006.08.20 - vfs objects = netatalkの説明を追加。netatalk-2.0.3-no-uicon.patch.gzを本家のメーリングリストに送った。2006.09.04 - ブラウズの問題等を追加。2006.09.10 - netatalk 2.0.4へ向けての動きがあるので記述を変更。2006.09.13 - cjk.fix.patchがCVSに入った。2006.09.18 - netatalk-2.0.3-no-uicon.patch.gzがCVSに入った。しかしそれ以外に大幅変更があったのでCVSにはcatsearch-terminator.patch.gzが当たらない。2006.09.19 - 最新のCVS版netatalk-2.1devでCJKファイル名が検索出来るnetatalk-2.1dev-catsearch-terminator.patch.gzを公開。2006.09.20 - 最新のCVS版netatalk-2.1devで、検索問題パッチ、ドットファイルパッチがいらなくなった。つまりCVS版は何もパッチがいらない。2006.09.28 - パーミッションの説明を修正。その他。2006.10.17 - afpfs-ngを紹介。2007.05.28 - blogの方の情報を盛り込んだ。AppleSingle/AppleDoubleのドキュメントにリンク。AFP1.1/2.0のドキュメントにリンク。CNIDの説明を追加。netatalkの起動について追加。その他。2007.07.26 - AppleVolumesファイルの説明を修正。その他。2007.08.10 - 統合cjk3パッチを公開。その他。2007.08.12 - 最近のBerkeley DBに対応するパッチを公開2007.10.26 - NetBSDの情報をちょっと追加。その他。2007.10.28 - Mac OS X 10.5 LeopardでSLPが使えない件を追加。2007.10.29 - Mac OS X 10.5 Leopardでクリアテキストパスワードが使えない件、極めて長いファイル名が使える件を追加。2007.11.04 - Leopard速報4追加。2007.11.05 - Leopard速報5追加。AFP3のリファレンスにリンク。2007.11.07 - Leopard速報6追加。2007.11.09 - Leopard速報7追加。2007.11.15 - Leopard速報8追加。2007.11.17 - Leopard速報9追加。2008.01.20 - Leopardにあわせて、色々書き直している途中。2008.01.23 - Leopardにあわせて、まだ色々書き直している途中。2008.01.28 - Leopardにあわせて、まだまだ色々書き直している途中。2008.01.30 - Leopardにあわせて一通り書き直したので、Leopard速報は削除した。2008.02.01 -「動作確認」を追加。2008.02.15 - Debian用の暗号化パスワード及びCJK対応netatalkのページにリンク。2008.02.22 - afpfs-ngにftpコマンドのようなafpcmdコマンドが追加された。2008.03.09 - cjk4パッチ公開。2008.03.15 - NetBSDの情報を追加。2008.03.23 - NetBSDの情報を最新の内容にした。リンクを追加。2008.04.16 - Vine Linuxの情報を追加。リンクを追加。2008.05.19 - Netatalk 2.1dev RPM/SRPMのページのリンク変更。2008.05.25 - 最近のgccでコンパイルが通るcjk6パッチを公開。2008.05.29 - bad function 4C, 4E, 4Fに関する情報を更新。2008.07.29 - samba 3.2.0での代替データストリームについて追加。2008.11.18 - samba 3.2.xについてゴニョゴニョ書き換えた。OpenBSD用の2.0.3+cjk6のpkgsrcが公開されてるのでリンクした。その他。2008.11.21 - OpenBSD用の2.1devのpkgsrcが公開されている。2008.11.23 - samba 3.2.xのパスワードの説明が間違っていたので修正。2.1devのDHX2に言及。2008.12.20 - netatalk 2.0.4beta2がリリースされているので、速報を。2009.01.16 - CVSのbranch-netatalk-2-0にCJK対応が入ったので、色々修正した。2009.02.04 - 最近のCVSにあわせて、あちこち修正した。2009.02.22 - AppleTalkやブラウズの説明をちょっと書き直した。2009.03.13 - 最近の2.1devのTimeMachine対応について書いた。その他。2009.03.28 - 2.1devでボリューム名問題がfixされている。2009.04.26 - netatalk 2.0.4rc1リリース。2009.05.06 - netatalk 2.0.4rc2リリース。2009.05.30 - netatalk 2.0.4リリース速報。2009.05.31 - netatalk 2.0.4リリースに伴う全面的な修正。2009.06.02 - netatalk 2.0.4の変更点を追記。2009.08.29 - Snow LeopardでAppleTalk廃止。2009.08.30 - Appleのドキュメントが更新されて、謎のコマンドが判明。2009.09.01 - Snow Leopard関連速報 1) 2)を追加。2009.09.25 - Time Machine関連情報を追加。2009.10.03 - netatalk 2.0.3時代の古い情報を色々削除。2009.10.31 - EAとTime Machineの話を追加。そのほか色々。2009.11.11 - netatalk 2.0.5 (安定版) リリース2009.12.19 - netatalk 2.1devでEAの調子がよろしいので色々書き換え。2010.02.07 - CVS HEADのバージョン表記が2.1devから2.1beta1に変わった2010.02.15 - netatalk 2.1beta1 (テスト版) リリース2010.03.08 - oplocksあたりの説明を少し修正。その他。2010.04.07 - NFDの説明をちょっと修正。その他。2010.04.09 - netatalk 2.1beta2リリースに伴う書き換え。2010.04.13 - 細部修正。2010.04.26 - 凍結。