Sambaでveto files=/Icon\015/と書けるようにするパッチ

November 2, 2000

patchはこのページの後半で取得できる。

使用には十分な注意が必要である。 ファイルシステムにダメージが出ても差し支えないような環境で試されたい。 無保証


SambaをNetatalkと共に使う場合、 Netatalkが独自に作る管理用のファイル/ディレクトリにWindowsから干渉できないように、

veto files = /.AppleDouble/.AppleDesktop/Network Trash Folder/Icon?/

のように書くということが、一般的に行われている。

ところでこの中の最後「Icon?」の?マークはワイルドカードで、 任意の一文字にマッチさせるためのものである。 これはMacOSにおいてカスタムアイコンを付けた場合に 「Icon^M」(^Mは16進で0x0dのコード)という名前のファイルができるので、 これをveto filesとして指定したいが、 smb.confに^Mを指定するシンタックスがないので、 次善策としてとる手段である。

この方法では、 Windows側から「Iconプラス1文字」というファイル名を扱うことがまったくできなくなってしまう。

そこでSambaに小さな拡張を施し、 8進数を使って^Mそのものを指定できるようなパッチを作成した。 パッチは、source/lib/util.cのset_namearray()に対する1箇所である。

このパッチを当てると、 veto filesのように、 値としてファイル名を / (スラッシュ)で区切って書くパラメータについて、 ファイル名の一部として \nnn のように文字コードを指定できるようになる。 ここで nnn は1桁から3桁までの8進数である。

従って件のveto filesについては、

veto files = /.AppleDouble/.AppleDesktop/Network Trash Folder/Icon\015/

と書けばよいことになる。



使用には十分な注意が必要である。 ファイルシステムにダメージが出ても差し支えないような環境で試されたい。 無保証
バグを発見した場合は kanai@nadmin.org まで。

Samba用 unofficial patch
samba.octal-20001102.diff

このパッチは、 Sambaのバージョン2.0.7 および 2.0.7-ja-2.0(日本語版) に適用できる。

2002年2月2日追記:
2.0.10-jp-1.2でも有効。
2002年2月14日追記:
さらに、動作確認はしていないが、ソースを見る限り、 2.2.2, 2.2.2-ja-1.0, 2.2.3a等でも有効と思われる。

Presented by kanai@nadmin.org
Top