このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

Mac OS X 10.x(1〜3)でNetatalkサーバにアクセスするとファイルがおかしくなる

発言者:monar
( Date Tuesday, March 09, 2004 23:29:02 )


いつもお世話になります。MacOSでWebサーバを立ててた頃は重宝させて頂きました。

ここでなら有益な情報がアーカイブされているだろうと思って検索したのですがありませんでした(探し方がヘタ?)。

MacOSXクライアントから(afp://192.168.1.10など)でLinux側で稼働しているNetatalkのファイルサーバにアクセスしたのですが、フォルダの中に入っている中身が違う(別のフォルダのデータがあるように見える)ことがたびたびあります。

例えば 画像フォルダ/aaa.psd(フォトショップの画像) とある場合、
MacOSXでアクセスすると 画像フォルダ/bbb.doc(エディタのデータ) などと見えます。もちろんこれを開くと本物のbbb.docが開きますが、画像フォルダ/ddd.docなんて場所にはddd.docは実際には入っていません(例:書類/ddd.docにある)。

WindowsやMacOS8〜9でアクセスすると(sambaとNetatalkで共有化してるので)まったく正常です。というか、MacOSXからファイルサーバにアクセスすると問題が出るようになりました。

googleで検索すると.DS_Storeの問題か、Netatalkをインストールする時のconfigureオプションか、はたまたOSXの問題かどうか絞れきれません。

なおこのファイルがおかしくなるケースはNetatalkとOSXの場合です。WindowsのMac共有とOSXでは問題が起きてません。

分かりにくいと思いますが、ようはOSXだとファイルがへんな場所に移動またはアイコンが変わって見えるっていう状況です。

Netatalkは1.5.5-6。RedHatのrpmをインストールしました。OSXは10.2.8と10.3.1で確認。

今井真人 さんからのコメント
( Wednesday, March 10, 2004 20:49:46 )

私も似たような経験があります。アイコンが消えたり、入れ替わったり、ファイル
そのものにアクセスできなくなったりと様々。

.DS_Storeファイルや.AppleDoubleファイルや..AppleDesktopファイルや
パーミッションやMacOS 31文字のファイル制限やMacOS Xのバグなどが絡み、
原因追及はできてません。

それなりに使えてますけど、不安定です。

森下 さんからのコメント
( Thursday, March 11, 2004 15:59:42 )

MacOSXからなら、AppleTalkにこだわらなくても、
SMBで共有してもいいし、NFSで共有してもいいでしょう。

あと、MacOSXが出たばかりの頃は、
NetaTalkの1.5系列だと接続できないが、
1.4系列の特定のバージョンだと接続できるとかありましたね。
ダウングレードしてみるのも一手かと思います。

がめら さんからのコメント
( Friday, March 12, 2004 19:42:43 )

AppleVolumes.defaultファイル。多分最終行の~以外全てコメントアウトされてると思いますが、
テストサーバーが立てれるなら、最終行を以下のようにするとひょっとしたらいいかもしれません。
~  options:nohex,limitsize

うちの場合Redhat8.0、netatalk 1.5.3.1-4ですがどうも良さそうなので、何故良いのか思い当たるふしを考えてみました。。

サーバー立てた当初、WEB,FTP,Appletalk,smbと、全てが同じ所にアクセスできるようにと
設定を色々触って試してみました。
要は、WEBサーバーであり、Mac&Winのファイルサーバーであるようにしたかったのです。
日本語のファイル名も使いたかったので苦労したのですが、FTPとAppletalkでは一応整合性が取れてます。
一応というのはごくまれにエラーになるファイル名が有るということです。
smbまで含めるのは挫折しました。
Webminによる設定を基本としていますので(というか、Webminが無いとお手上げ)
設定ファイルもそれ以外に勝手に設定されている部分があるかもしれません。
で、たどり着いたのが上記です。
FTPはデフォルトのまま、AppleVolumes.defaultにoptions:nohexを付け加えると、
FTPとNetatalkで、同じように日本語ファイル名が扱えるように扱えるようになりました。

ファイル名表示の仕方が変わってしまいますので、動いているサーバーでやるのは危険です。
テストサーバーが立てれるなら、試す価値あるかもしれません。

私自身がOSXについて、殆ど素人状態なのと、Netatalkの設定をしてから時間が経っているので、
これ以上の説明を求められても多分何も言えないと思いますが、
参考になるかもしれないと思い、書き込ませていただきました。

今井真人 さんからのコメント
( Friday, March 12, 2004 21:19:23 )

> AppleVolumes.defaultファイル
>〜  options:nohex,limitsize

このようなオプションを入れたことが無かったので調べてみました。
http://www.linux.or.jp/JM/html/netatalk/man5/AppleVolumes.default.5.html

mswindows
noadouble
usedots
のあたりも気になります。
現在、テスト用サーバを「options:nohex,limitsize」で運用中。

→  http://www.linux.or.jp/JM/html/netatalk/man5/AppleVolumes.default.5.html

今井真人 さんからのコメント
( Saturday, March 13, 2004 09:37:35 )

「options:nohex,limitsize」で運用継続中です。

「〜 options:nohex,limitsize」にプラスして、ゲストアクセスを認めているものも
「/home/guest "guest" options:nohex,limitsize」のように記述して運用中です。

特に問題はでません。しばらく使ってみないとわかんないと思います。

がめら さんからのコメント
( Sunday, March 14, 2004 00:17:32 )

乏しい知識で知ってる(知った)ことを。
Rinuxにおいて、文字「/」はディレクトリーの区切りになります。
しかし、options:nohexを入れる前はファイル名として「/」も受け付けます。
サーバー上で見てみると、ファイル名を全て16進表記で表しているようです。「/」受付も納得。
options:nohexを入れると、サーバー上での表記の仕方が変わります。違う体系の意味不明文字になります。
ファイル名に「/」を入れるとエラーになります。

そのnetatalkサーバーにOSX、サファリでftp://192.168.0.xxとやって繋ぎにいくと、
私の場合、ファイル名が化けてしまいます。OS9なら一応見れるのに。
きっと何かの設定なんでしょうが、私には分かりません。おかしくても実害は有りませんが。

今井真人 さんからのコメント
( Sunday, March 14, 2004 19:15:27 )

「〜 options:nohex,limitsize」の設定以前に書いたファイルで、日本語ファイル名のものが
取り出せないことがあります。

一度、データを全部吸い出して、それから設定を変更して書き直すなどの対策が必要
になるかも知れません。

monar さんからのコメント
( Sunday, March 14, 2004 20:26:33 )

みなさん有意義な情報ありがとうございます。

自分の共有サーバには

/share "Share" allow:nobody option:usedots

と入れてあります。

.ファイルは変換させていない設定ですが、色々変えてみます。


土曜日にテストサーバ(マシンがPPCなのでVineLinux2.6をインスト。NetatalkのrpmがEUCパッチのもので下記サイトから入手)を立てたので
色々実験してみます。


パッケージ作成者のサイト
http://www.osaka-med.ac.jp/~med012/HomePage/Vine25/mac/netatalk.html

monar さんからのコメント
( Sunday, March 14, 2004 20:33:51 )

蛇足です。

Netatalkにこだわるのは、OS8からOSXまで沢山のMacクライアントがアクセスするからです。

sambaもインストールして/shareを共有させています。

念のためにAppleVolumes.systemに

.ai  "TEXT"   "ART5"  Illustrator Document  Illustrator
.eps  "EPSF"   "ART5"  Illustrator Document  Illustrator

などと追記させています。同じ拡張子があっても問題ないのか不安ですが、ぶっちゃけ、Macユーザは拡張子なんて付けないですし、クリエーター名とタイプ名の方が重要かな?と思いますが。

monar さんからのコメント
( Sunday, March 14, 2004 21:06:09 )

申し訳ありません。

/share "Share" allow:nobody option:usedots

optionsでした。自分のタイプミス・・・ちょっとテストしてみます。

monar さんからのコメント
( Sunday, March 14, 2004 21:22:35 )

しつこくてすみません^^;

.DS_Storeをそのまま記録(CAPエンコーディングしない)すればアイコンは
ともかくとして、ファイル名はそのまま変にならないコトを確認しました。

オプションのnohex(これはドットファイルは変換されます)だと

  :2eDS_Store

このようになるので最初の頃と同じトラブルが出そうですが、色々optionsを
変えて試してみますね。

なんとなく使えそうな気がしてきました。ほぼ問題ないレベルになった時に
また結果を書いておきます。

森下@舌足らず さんからのコメント
( Sunday, March 14, 2004 21:34:01 )

NetaTalkにこだわらんでも、と書いた張本人ですから、ちょっとそれについて補足すると、
最初に
>WindowsやMacOS8〜9でアクセスすると(sambaとNetatalkで共有化してるので)まったく正常です。
とお書きですから、
ここからまたNetaTalkをいろいろ設定しだすと、今度はOS9系で不具合がでる可能性もあるでしょうから、
わざわざ苦労しなくても、WinとMacOSXからはSMB、OS9からはNetaTalkにすれば、
まったく現状に手をつけずに幸せになれるのでは?ということです。

もちろん、苦労することに意味はないというつもりはないですよ。(^^)

#とはいうものの、こんどはSambaの日本語ファイルが・・・、とかなる可能性はありますが(^^;;;

今井真人 さんからのコメント
( Sunday, March 14, 2004 22:28:04 )

今度は、このような設定「~ options:usedots,limitsize」です。

私のところではnetatalkをnohexを入れないで使ってきた歴史があり、
こっちの方が良さそう!

.DS_Storeファイルが、:2eDS_Storeと記録されていてアイコンの位置情報が
.DS_Storeファイルに入れ直しになってしまうのが、困るのだけど強制的に
ファイル名を変更してもよいかも。

monar さんからのコメント
( Sunday, March 14, 2004 23:41:18 )

>>森下さん
他意はありません。気分を害したらごめんなさい^^;

OS9ユーザが作成したデータをWindowsユーザが移動したり変更したりしない
のはリソースフォークの問題でファイルが壊れるのを避けるためで、リソー
スフォークを無視出来るファイルのみ書き換えたりしてくれと指導してあり
ます(Winユーザに)。

それと同じで、OSXからsambaでアクセスだと、リソースフォークを壊してし
まうのではないか?という心配からでした。


さて、ファイル名が変わらずアイコンだけ変わってしまうのはもしかしてOS
Xのキャッシュが問題か?と思ってOSXから新規ユーザを作り、Netatalkサーバ
にアクセスしました。

最初に見たフォルダのアイコンをキャッシュするようです。拡張子がついて
ないデータだったり、拡張子がだぶってるデータのみ変になったので、これ
が正解かな?と考えました。

こーなると、Netatalkの2ではロングネームにも対応してるので、これを使え
ば安心かな?

と思ってnetatalk-2.0-alpha2をインストール中です。
Berkeley DBを入れてあるのにconfigureで

checking for Berkeley DB headers in /usr/local/BerkeleyDB.4.2/include/db4... no
checking for Berkeley DB headers in /usr/local/BerkeleyDB.4.2/include... yes
checking db.h usability... yes
checking db.h presence... yes
checking for db.h... yes
checking Berkeley DB version >= 4.0... no

Make sure you have the Berkeley DB libraries AND headers installed.
You can download the latest version from http://www.sleepcat.com.
If you have installed BDB in a non standard location use the
--with-bdb=/path/to/bdb configure option.
configure: error: Berkeley DB library required but not found!

というところでつまずいてる最中です。


ていうか、日曜の夜中になにやってるんだ・・・オレ

がめら さんからのコメント
( Monday, March 15, 2004 01:32:16 )

すみません、教えて下さい。
netatalk&smbに加えて、WEBサーバーにもしたいとした場合、FTPを加えなくても
構築可能なんでしょうか?
ネックになるのがCGIのパーミッションの設定なんですが、アップルトークでは設定出来ないですよね?
それとも出来るツールとかが有るのでしょうか?

今井真人 さんからのコメント
( Monday, March 15, 2004 08:26:23 )

>ネックになるのがCGIのパーミッションの設定なんですが、アップルトークでは設定出来ないですよね?
>それとも出来るツールとかが有るのでしょうか?

私ならTELNETでやります。こっちのほうが直接的なので。
chmodはともかく、chownのほうはFTPではできないし。
その他、CGIを仮に実行したり、ログを見てエラーを考えたりと
TELNETは必須ではないかと思うのですが。

以下は参考書です。

→  達人に学ぶPerl/CGI道場

今井真人 さんからのコメント
( Monday, March 15, 2004 08:39:16 )

ls -laFなんてコマンドで見ればわかりますが、同じディレクトリ上でDS_Storeが
2つ存在してます。

.DS_Store
:2eDS_Store

これはこれで困るような気がする。先に、:2eDS_Storeは全部消しておくのが
正解かも。DS_Storeは、単にアイコンの表示の仕方や位置情報だけなので
問題ないと言えば問題ないのだが。

今井真人 さんからのコメント
( Monday, March 15, 2004 08:52:45 )

find /home -name ":2eDS_Store" -exec rm {} \;
というコマンドで:2eDS_Storeファイルをまとめて消してみた。

さて、どうなるか。

がめら さんからのコメント
( Monday, March 15, 2004 11:05:14 )

>私ならTELNETでやります。こっちのほうが直接的なので。
>chmodはともかく、chownのほうはFTPではできないし。

今井様ご教授ありがとうございます。
参考にさせていただきます。<(_ _)>

今井真人 さんからのコメント
( Monday, March 15, 2004 20:03:16 )

>monarさん
>ていうか、日曜の夜中になにやってるんだ

私も夜中にサーバのセットをよくやります。自宅からもsshで同じように操作
できるためですけど、職場で夜中に一人きりでやるより、自宅でくつろぎ
ながらの方が、はかどります。

それから、サーバを操作する時って使用するユーザが居ないときがよい場合が
多いのでしょうがない部分もあります。

monar さんからのコメント
( Monday, March 15, 2004 22:39:55 )

一日テストしてみた結果をちょっと書いてみますね。

OSX10.2.8だとアイコンのみ変になるだけでおおむね問題ないのですが、
OSX10.3.2だと文字も変わってしまってます。

とりあえずOSX10.3.2ユーザにはsambaってくれってゆっときましたw

OSXのafpって10.2も10.3もafp3でしたっけ? なんで10.2.xと10.3.xでは不具合の度合いが違うんだろう??


今井さん

自分も夜中によくサーバのセットを行ってます。職場だと業務に謀殺されて
サーバなんてとりかかっとれん!というのもあるし、自宅だと気楽に出来るの
もありますね。

ただ、Netatalkをインターネット接続させてる関係で、夜中になってもお客
さんが共有フォルダをマウントしっぱなしでNetatalkの再起動とか出来ない
のがちょっとアレですよー。デザは徹夜とか当たり前なのでホント、24時間
マウントしっぱなし・・・

一度 ps -ax | grep afp したらデーモンが15位ずらずら・・・

おぃおぃ 真夜中過ぎてるんだぞw

今井真人 さんからのコメント
( Monday, March 15, 2004 22:58:12 )

AppleVolumes.defaultファイルの変更は、Netatalkの再起動は必須ではないようですが、
マウントを一旦解除ぐらいは必要ですね。

今井真人 さんからのコメント
( Monday, March 15, 2004 23:02:49 )

MacOS Xになり拡張子は、とても大事になっているように思います。
MacOS Xを使うならファイルの拡張子の管理は必須かと思います。

クリエーターやファイルタイプより、拡張子の方がアイコンや起動
アプリケーションのリンクなど密接に関係しているように思います。

今井真人 さんからのコメント
( Tuesday, March 16, 2004 07:43:25 )

Mac OS X アップデート 10.3.3が出ました。

Mac(AFP), UNIX(NFS), PC(SMB/CIFS)のネットワークでのファイル共有や
ディレクトリサービスの機能が改良されました。

これで、どうなることやら。

今井真人 さんからのコメント
( Tuesday, March 16, 2004 18:30:16 )

Mac OS X アップデート 10.3.3により、Windowsのワークグループの表示が
スムーズになったような気がします。

その他は、変わらないように思います。

今井真人 さんからのコメント
( Tuesday, March 16, 2004 20:00:26 )

アップルサポート-TIL Mac OS X 10.3.3 Update について
http://til.info.apple.co.jp/cgi-bin/WebObjects/TechInfo.woa/wa/showTIL?id=25711

ネットワークと .Mac の機能向上の当たりにネットワークに関わるものが掲載されています。

→  アップルサポート-TIL Mac OS X 10.3.3 Update について

monar さんからのコメント
( Tuesday, March 16, 2004 23:00:06 )

netatalk-2.0-alpha2のインストールが成功したので明日職場で
Mac OS X 10.3.3とnetatalk-2.0-alpha2の組み合わせでテストしてみます。

良くなってればいいですねぇ・・・

monar さんからのコメント
( Tuesday, March 16, 2004 23:05:14 )

ところでOSX 10.2.xにあったafp://〜のアクセスでSSHが効いてない欠陥は
ちゃんと直ったんですかね??

http://slashdot.jp/article.pl?sid=04/02/29/0040249

monar さんからのコメント
( Wednesday, March 17, 2004 17:34:56 )

netatalk-2.0-alpha2をインストールしてOSXクライアントから表示させてみ
た結果です。

configureオプションはとりあえず最小のみ。

--with-bdb=/usr/local/BerkeleyDB.4.1
--enable-redha


configureが終わった時に表示されたメッセージ

Using libraries:
    LIBS = -lnsl -ldl  -L$(top_srcdir)/libatalk
    CFLAGS = -I$(top_srcdir)/include -g -O2 -I$(top_srcdir)/sys
    SSL:
        LIBS   =  -L/usr -lcrypto
        CFLAGS =  -I/usr/include/openssl
    PAM:
        LIBS   =  -L//lib -lpam
        CFLAGS =  -I//include
    WRAP:
        LIBS   = -lwrap
        CFLAGS =
    BDB:
        LIBS   = -L/usr/local/BerkeleyDB.4.1/lib -ldb
        CFLAGS = -I/usr/local/BerkeleyDB.4.1/include
Configure summary:
    Install style:
         redhat
    AFP:
         AFP 3.x calls activated: yes
         Large file support (>2GB) for AFP3: yes
         DDP enabled: yes
    CNID:
         backends:  cdb dbd last
    UAMS:
         DHX     (PAM SHADOW)
         RANDNUM (PAM SHADOW)
         passwd  (PAM SHADOW)
         guest
    Options:
         SLP support:            no
         tcp wrapper support:    yes
         Linux sendfile support: no
         quota support:          yes
         admin group support:    yes
         valid shell check:      yes
         cracklib support:       no
         dropbox kludge:         no
         force volume uid/gid:   no
         Apple 2 boot support:   no


Mac OSX10.3.3と10.2.8、どちらもまったく問題ありません。次はnetatalk-
1.6.4をソースコンパイルして試してみます。これで問題なければrpmされた
時のオプションが良くなかったということでひとつ。

monar さんからのコメント
( Saturday, March 20, 2004 23:14:53 )

えーと、色々テストした結果です。

OSXでの問題はソースビルドすれば直りました。1.6.4をインストールした時
のオプションは

./configure --with-flock-locks --with-pam --with-shadow --with-tcp-wrappers --with-did=cnid --with-ssl-dir=/usr/lib --enable-redhat

です。おそらくrpm版は--with-did=cnidではなかったのかなぁ?と考えたので
すが、それだとOS9で問題が起きないのはおかしいし・・・

まぁ正常になったので深く追求することもないかと^^;

それからAppleVolumes.defaultからoptionsを外しました。