So-net無料ブログ作成

AFP3.4とGSSって何だろね [macOS]

OS X 10.8.2をasip-status.plで調べた例です。

続きを読む


Mac OS XでWindows禁止文字 [macOS]

NTFSにはファイル名禁止文字が沢山あるので、Mac OS XからWindowsにSMBで接続してファイル転送するとエラーになった。
が、最近同じことを試したら、なんと保存できる。FATのUSBメモリにも保存できる。いつの間に仕様変更したんだろう。

カーネルソースに詳細があります。

http://www.opensource.apple.com/source/xnu/xnu-1504.7.4/bsd/vfs/vfs_utfconv.c
/*
 * Invalid NTFS filename characters are encodeded using the
 * SFM (Services for Macintosh) private use Unicode characters.
 *
 * These should only be used for SMB, MSDOS or NTFS.
 *
 *    Illegal NTFS Char   SFM Unicode Char
 *  ----------------------------------------
 *    0x01-0x1f           0xf001-0xf01f
 *    '"'                 0xf020
 *    '*'                 0xf021
 *    '/'                 0xf022
 *    '<'                 0xf023
 *    '>'                 0xf024
 *    '?'                 0xf025
 *    '\'                 0xf026
 *    '|'                 0xf027
 *    ' '                 0xf028  (Only if last char of the name)
 *    '.'                 0xf029  (Only if last char of the name)
 *  ----------------------------------------
 *
 *  Reference: http://support.microsoft.com/kb/q117258/
 */
なんと、旧Service for Machintoshの仕様に倣い、Unicodeの私用領域を使って無理矢理保存するんだな。 当然のことながら、Windows側では正常に表示できません。 というか、SFMがそんな仕様になってたとは知らなかった。

EA未対応AFPサーバ上の*.appを削除できない [macOS]

Snow LeopardからAFPサーバ上にコピーした*.appや*.pkgを削除しようとすると、エラーになることがあります。
これはAFPサーバの問題ではなく、Snow Leopardのバグです。
10.6.1, 10.6.2, 10.6.3, 10.6.4, 10.6.5で確認済です。

再現方法:
  1. Internetからサイズのでかい*.appを含むファイルをダウンロードする。
  2. *.appをダブルクリックしない。つまり実行しない。
  3. これをAFPサーバにコピーする。
  4. AFPサーバ上の*.appをダブルクリックしない。
  5. Finderを使ってこの*.appを削除しようとする。 → エラー発生


Terminal.app内でrm -rf xxx.appとした場合は問題なく削除できます。
この問題が発生するAFPサーバとして確認しているのは、netatalk 2.0.xとTigerです。
EA対応のnetatalk 2.1では発生しません。ただし、敢えてea:noneに設定すると発生します。

つまり、AFPサーバがEA未対応のときに発生する問題です。

原因:
インターネットからダウンロードしたファイルにはcom.apple.quarantineという名前のEAがつきます。このEAがついたファイルを実行しようとすると、「開いてもよろしいですか?」という警告が表示されます。開いたタイミングでこのEAが削除されます。
で、巨大な*.appの場合、その中に含まれる全てのファイルにcom.apple.quarantineがついています。そのままEA未対応AFPサーバにコピーすると、「._」で始まるファイルが大量にできます。
この*.appをFinderで削除すると、まずディレクトリ内のファイルを全部消してから親ディレクトリを削除します。
しかし、ファイルを全部消していないのに親ディレクトリを消そうとして、失敗するわけです。「._」ファイルが沢山あると、ファイル数を間違えていると思われます。

対策:
本質的な対処方法はありません。
AFPサーバをEA対応のものにする。コマンドラインでrm -rfして消す。Snow Leopardが直るのを待つ。などですね。

emacsで編集したときの拡張属性の挙動 [macOS]

Mac OS X上のエディタでテキストファイルを保存すると、文字コードを保存するための拡張属性が付きます。
$ ls -l@i aaa.txt
13960281 -rw-r--r--@ 1 hat  hat  9 Dec 10 21:14 aaa.txt
         com.apple.TextEncoding  14


このファイルをemacsで編集してやると、abc.txt~というバックアップファイルができるわけですが、
$ ls -l@i aaa.txt*
13960284 -rw-r--r--  1 hat hat 12 Dec 10 21:15 aaa.txt
13960281 -rw-r--r--@ 1 hat hat  9 Dec 10 21:14 aaa.txt~
         com.apple.TextEncoding  14

拡張属性がバックアップファイルの方に移動してしまいます。
なぜかというと、emacsはファイルをリネームしてバックアップファイルとし、新たに元のファイル名を作るからです。この挙動は編集前後のinode番号を見ればわかります。

で、対策方法ですが、.emacs.el
(setq backup-by-copying t)

としてやると、リネームではなくコピーでバックアップファイルを作るようになるので、拡張属性が移動しません。バックアップファイルの方は拡張属性が付きませんが、まあ、しょうがないか。
タグ:Mac OS X

Snow Leopard X11にxonコマンドなし [macOS]

Leopard X11 その7からのつづき。

Snow Leopardにしたら、なんかまたX11がおかしい。
xonコマンドがなくなっている。まあ、r系コマンドはセキュリティ云々の問題があるから、なくなっていく運命ですね。
G4 CubeのTigerに入っているxonコマンドをもってきて対処しました。
xonコマンドは単なるスクリプトなので、どこから持ってきても動くでしょうね。

あと、Leopard 10.5.7のとき、MacアプリとX clientの間で文字列のコピー&ペーストがうまくいかなくなったので、~/Library/Preferences/org.x.X11.plistを直接編集して対処してましたが、Snow Leopardだとちゃんとこれの設定項目ができてますね。

タグ:Mac OS X

Leopard X11 その7 Mac OS X 10.5.7で、また変わった? [macOS]

その6からのつづき

Mac OS X 10.5.7で、またもやX11.appの動作が変わってます。

続きを読む


タグ:Mac OS X

Snow Leopardのカタカナ表記はスノーレオパード [macOS]

Leopardのカタカナ表記は「レオパルド」ではなく「レオパード」でもなく「レパード」だー!
と、心の中で100回唱えてやっと「レパード」と言えるようになりました。しかし、商標の称呼では「レオパード」でした。
Snow Leopardも「スノーレパード」として商標出願してます。
何故?

続きを読む


タグ:Mac OS X

Leopard X11 その6 MacOSX10.5.2になっても変→1.5.5で直った [macOS]

その5からのつづき

10.5.2 LeopardのX11.appは、かなりマシになったが、まだ変。
Exposéで全てのウインドウを表示し、X Clientを一つ選んでも、前面に出てきません。
一見、前面に見えますが、実は違います。そのウインドウをクリックすると、下にあるX Clientが前面に出てくることがあります。

[2008.09.17 追記]
10.5.5で直りました。いやー、待たされた。

その7へつづく
タグ:Mac OS X

Leopard X11 その5 非公式X11.app [macOS]

その4からのつづき

一通りのバグがfixされた非公式版があるんですね。
http://trac.macosforge.org/projects/xquartz/wiki/Releases
どうしようかなあ。試すかなあ。

その6へつづく


タグ:Mac OS X

afpかafpovertcpか [macOS]

一般にafpと呼びますが、場合によってはafpovertcpと呼ぶ場合もあります。その使い分けを考えてみました。

AppleTalkベースのときは、
AFP over ASP over ATP over DDP
TCP/IPベースのときは、
AFP over DSI over TCP over IP
という構造になっています。
どちらにしろAFPは同じプロトコルです。ASPをDSIに差し替える事で違いを吸収しているのです。

afpovertcpは、その名の通りTCP/IPベースを示すものです。
port 548はDSI以上で使われるので、AFPというよりもDSIを示していると考えた方がいいかもしれません。ただ、仕様書上でもAFPとDSIの区別がはっきりしていない部分があります。

続きを読む


wiresharkでafpを解析する [macOS]

wiresharkでafpを解析するのは、はっきりいって簡単です。
少なくともnetatalkをセットアップ出来る人なら誰でも出来るでしょう。tcpdumpコマンドの出力を目で追うのは大変ですが、wiresharkはGUIなのでマウスでいじるだけで何が起きているのかわかります。

LinuxだろうがBSD系だろうが、最近のディストリビューションならwiresharkは用意されていると思います。

次の図は、クリアテキストのパスワードを表示している例です。

ユーザhatのパスワードhogehogeがあっさり見えています。暗号化パスワードならこうはいきません。

ただし、afpを調べるには、ちょっとだけコツが必要です。

続きを読む


タグ:AFP netatalk

AFPでのユーザ認証の仕組み [macOS]

AFPでのユーザ認証の仕組みは、ほとんど理解さていないようなので説明します。

続きを読む


Leopard X11 その4 [macOS]

その3からのつづき

取り敢えず、バグだらけのX11.appをなんとか使いこなすコツはつかみました。

続きを読む


タグ:Mac OS X

Leopard X11 その3 - Unicode対応xtermをビルド [macOS]

その2からのつづき。

[注] このページの記述は10.5.0〜10.5.1の話である。10.5.2に付属するX11.app 2.1.1のxtermはunicodeに対応している。環境変数LANGをja_JP.UTF-8にしてxtermを起動すれば良い。


Mac OS X 10.5 Leopardに付属するxtermがunicode未対応なので、
Leopardで-u8対応のxtermをビルド - Acanthopanax の日記
のページを参考にビルドしてみたが、失敗した。
調べた結果、2つの方法でビルドに成功した。

続きを読む


タグ:Mac OS X

Leopardのsmbはport 139と445の両方 [macOS]

smbが使うportは2種類あるが、Mac OS Xは10.5 Leopardから対応が変わった。

続きを読む


タグ:Mac OS X samba

Leopardの共有アイコン [macOS]

Mac OS X 10.5 Leopardは、ファイル共有サーバのアイコンがafpとsmbで区別出来ます。

左がBonjourで見つけたafpサーバ、右がnmbで見つけたsmbサーバです。
このsmbサーバのアイコン、どう見てもWindowsが落ちたときのブルーバックじゃないですか。しかも液晶モニタじゃなくて古くさいCRTですよ。
Windowsをナメてるんでしょうか。すごいセンスです。

[2008.10.07 追記]
なお、netatalkのサーバアイコンを変えて遊ぶ方法もあります。


タグ:Mac OS X AFP samba

Leopard X11 その2 [macOS]

その1からのつづき

やはり今回のX11の仕様変更/各種バグについては、色々と話題になっているようだ。

続きを読む


タグ:Mac OS X

LeopardはSLPサポートなし [macOS]

LeopardはSLPのサポートがなくなりました。

Finderの左の「共有」の欄にSLPで公開しているnetatalkが出てきません。

続きを読む


Leopard X11 その1 [macOS]

Mac OS X 10.5 LeopardのX11の変更点が多すぎて、かなり混乱しています。
XFree86からX.Orgになったのが原因でしょうか。

続きを読む


タグ:Mac OS X