Sambaと乗り入れるためには、Sambaの共有設定にも工夫が必要になります。
こちらは共有ディレクトリに対して、強制的に書き込むユーザー、グループ パーミッションを指定することが出来ます。
自分の場合、動作検証のために複数のOSから同じファイルを編集する事が多く、 同じ権限でアクセス出来る方が都合がよいので、Samba側では強制的に所有権とパーミッションを指定するようにしています。
Windowsファイルサーバー構築で説明しているので参考にして下さい。
Samba側でキャラクターセットを指定しておいて下さい。ここで説明しています。
smb.conf の [global] セクションに以下を記述することで、Netalkが生成するシステムファイルを非表示にすることが出来ます。
[global]
veto files = /Temporary Items/Network Trash Folder/TheVolumeSettingsFolder/
[ 注 意 ]
.Apple* を veto 指定に含めてしまうと、グループ権限があっても、MAC OSから書き込んだファイル・フォルダが Windows(Samba)側から削除出来なくなります。
もともとピリオドから始まるファイル、ディレクトリは不可視扱いなので、ピリオドから始まるファイル、ディレクトリは設定の必要がありません。
AppleShareの共有にはゲストという設定があります。ユーザーアカウント必要としない、同じネットワークにつながっていれば誰もが接続できる共有設定の事です。
自由にアクセスできて、全ての権限が与えられている共有ディレクトリをWindowsとMacで乗り入れると ノートパソコンなどLANに接続するだけでデータのやり取りが出来て便利です。ひとつこさえておきましょう。
afpdconf に赤で示した箇所を追記します。
- -uamlist uams_clrtxt.so,uams_dhx.so,uams_guest.so -savepassword -maccodepage MAC_JAPANESE -unixcodepage UTF8
netatalk.conf でゲストユーザーが指定されている必要があります。
デフォルトは nobody です。
AFPD_GUEST=nobody
AppleVolumes.defaultで以下のように指定します。
/phase/pub "パブリック"
ここで指定されたディレクトリがAFPD_GUEST= で指定された所有者が一致した場合、ゲスト接続が可能になります。 /phase/pubのユーザー、グループは nobody に設定します。 アカウント無しで接続できるようになります。
通常のユーザーが接続した場合は、ゲスト公開されたディレクトリも表示され接続可能です。この際、書き込むと nobody ではなく、書き込んだユーザーの権限になりますが、ゲストディレクトリは、通常の共有ディレクトリとは異なり 誰でも削除出来る権限になるようです。
sambaとこのゲストディレクトリを乗り入れる場合は、smb.confのディレクトリ共有設定で
force user = nobody
とし、nobody ユーザーに強制する必要があります。もちろんWindowsから書き込んだ本人も削除できるように、所属するグループを強制する必要があります。
以上です。