So-net無料ブログ作成
検索選択

ファイルを見えなくする設定は注意が必要 (vetoとか) [Netatalk and Samba]

samba及びnetatalkには、サーバ側にある任意のファイルをクライアント側から見えないようにする設定があります。
何となく見えると気持ち悪いから、という理由で設定している人もいるようですが、これは運用上の安定性やセキュリティも絡む事ですから、あまり軽い気持ちで扱うべきではないでしょう。

一覧に表示されないだけなのか、存在しない事になっているのか、この区別は重要です。

単に一覧に表示されないだけの場合、ユーザは気付かなくても確実にファイルは存在しています。フォルダを丸ごとローカルディスク上にコピーした場合、その中にある見えないファイルも一緒にコピーされる事に注意してください。それをアーカイブしてお得意先にメールで送るかもしれません。見えないファイルに機密事項が含まれていたらどうしますか。

全く存在しないことになっている場合、クライアントからはそれにアクセスする手段は存在しません。フォルダを丸ごとコピーしてもそのファイルはコピーされません。逆に、それがクライアントに必要な情報を含んでいる場合、何らかの問題が発生することは容易に想像出来ます。

sambaの場合
DOSの時代より、hiddenというファイル属性があります。これはその名の通り、存在するにも関わらず表示されなくする属性です。dirコマンドの場合、/ahオプションを付けることで表示出来ます。Windowsのエクスプローラの場合は、フォルダオプションの表示タブですべてのファイルとフォルダを表示するを選べば表示出来ます。
sambaでは、smb.confに設定項目があります。

hide dot files =
ドットファイルをhidden属性にする。
hide files =
指定した名前のファイルをhidden属性にする。
veto files =
指定した名前のファイルを存在しない事にする。一覧することもアクセスすることも出来ない。

隠したくなるファイルやフォルダには以下のようなものがあります。
これらにはnetatalkが作るものとクライアントが作るものがあります。クライアントであるMacOSのバージョンによって、作るフォルダが違うところが面倒です。

.AppleDB
.AppleDouble
.AppleDesktop
Network Trash Folder
.DS_Store
.VolumeIcon.icns
Icon^M
.FBCIndex
.FBCLockFolder
TheFindByContentFolder
TheVolumeSettingsFolder
Temporary Items
.TemporaryItems

netatalkが作るものは、veto files =に設定すべきでしょう。事情を知らないsambaユーザがヘタにいじると、netatalkの動作が不安定になります。
MacOSXがsamba経由で作る._で始まるファイル、すなわちAppleDouble Header Fileは、veto files =に設定すべきではないでしょう。MacOSXからsambaにコピーした途端、AppleDouble Header Fileにアクセス出来なくなります。これにはリソースフォーク等のMacにとって必要な情報が含まれています。
Icon^Mはクセものです。最後にコントロールコードがついており、veto files =で設定するにはワイルドカードを使ってIcon?にする必要があります。この設定をすると、IconaとかIconBみたいなファイル名もアクセス出来なくなります。この点をなんとかするパッチがあります。(私は試してませんが)

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

netatalkの場合
MacOSにはinVisibleというファイル属性があります。これはDOS/Windowsのhidden属性と同様で、Finderで表示出来なくするだけのものです。
MacOSXからはinVisibleだけでなくドットファイルもFinderに表示されません。ただしTerminal.appからlsコマンドを使えば前者は表示されます。-aオプションを付ければ後者も表示出来ます。

netatalkでは、AppleVolumes.defaultに設定項目があります。

veto:
指定した名前のファイルを存在しない事にする。一覧することができない。


ただしバグがあります。一覧に出てこないので存在しないように見えますが、やろうと思えばアクセス出来ます。(netatalk 2.0.5で直った)
sambaのveto files =とは違う事に注意してください。
デフォルトのnetatalkの場合、クライアントはサーバ側のドットファイルに全くアクセス出来ません。
クライアント側からドットファイルを作った場合、サーバ上では:2eで始まるファイル名になるので、本来のドットファイルと別扱いになります。
ただし、usedotsオプションを使うと、両者の区別がなくなります。


タグ:samba netatalk
nice!(0)  コメント(1)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 1

なか

ありがとうございます。
近々、修正いたします。
いつもとても勉強になっています。
これからもよろしくお願いします。
by なか (2007-04-27 17:42) 

コメントを書く

お名前:[必須]
URL:[必須]
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この記事のトラックバックURL:
※言及リンクのないトラックバックは受信されません。