MacとWindowsのファイル共有について,どうにもうまくいかず長い間悩んできましたが,ようやく解決することができたので,備忘録も兼ねて,解決方法などを書いていきます。

OS Xのファイル共有の仕組み

 OS X(以前は「Mac OS X」でしたが現在は「OS X」が正式名称のようです)は,SMBというプロトコルを使ったファイル共有をサポートしています。そのため,とくに専用のソフトウェアなどをインストールする必要もなく,WindowsからMac上のファイルを操作することが可能になっています。

 ところで,OS XはBSD UNIXをベースにして作られたオペレーティングシステムです。そのため,一台のコンピューターを複数のユーザーで使用することが可能になっています。
 一人のユーザーがWindowsとMacを使っている環境ならば問題ないのですが,複数のユーザーが同時にMac上のディレクトリやファイルを操作するような場合,あるユーザーの作ったファイルを別のユーザーが読み込めないという問題が発生します。(使い方によっては問題が発生しない場合もあります)

 その原因は,ファイルやディレクトリのアクセス権限にあります。

アクセス権限

 UNIX系のシステムは,ファイルのアクセス権を「ユーザー」「グループ」「その他」で管理しています。

 「rwxr-xr-x」の部分が,各ファイルのアクセス権を表しています。
 「r」は読み込み可能,「w」は書き込み可能,「x」は実行可能を表し,最初の三文字はファイルを所有するユーザーのアクセス権,次の三文字はファイルが所属するグループのアクセス権,最後の三文字はその他のユーザーのアクセス権となっています。
 上の例では,ファイル所有者の「root」さんは読み込み,書き込み,実行いずれも可能,「wheel」グループのユーザーと,その他のユーザーは,読み込みと実行のみが可能ということになります。

 Windowsから,共有されているMac上のディレクトリにファイルを作成すると,そのアクセス権は次のように設定されます。

 これは,ファイルの所有者である「user」は読み込み,書き込み可能で,その他のユーザーすべてはアクセス不可ということを表しています。
 そのため,あるユーザーの作成したファイルを,他のユーザーが読み込めないという現象が起こってしまうのです。

 このような現象が起きないのは,Mac上のファイルにアクセスするときの認証を全て同じユーザーに統一している場合です。
 OS Xは,アクセスしてくるユーザーの認証を求めます。このとき,OS Xに登録されているユーザーの名前とパスワードを入力することになるのですが,現にWindowsを使用しているユーザーである必要はなく,別のユーザーの名前を入力しても問題ありません。
 そこで,WindowsからMacにアクセスするすべてのユーザーが同じ名前(とパスワード)を使っていれば,アクセス権で悩む必要はなくなります。

 しかし,このような運用をすると,構成員に変更が生じたとき,困るかもしれません。
 まず,各ファイルの作成者が同じユーザー名になるので,どのファイルを誰が作ったのか把握することが難しくなります。多数のユーザーがひとつのストレージ(記憶装置)を使う場合,ファイルの作成者が記録されていると望ましい場合は少なくありません。
 次に,組織を脱退した人から不正アクセスを受ける可能性が高まります。加えて,攻撃をされたのかどうかも判別できなくなります。

 このような問題があることから,セキュリティ対策を万全にしたい場合,アクセス権の問題を解決しなければなりません。

(つづく)