Ubuntu LinuxでSMBとTime Machineサーバーを構築する!
By Patineboot
最新の情報!
macOSクライアント向きSambaの設定を、研究開発記事で発表しています。
本記事より新しい最新情報は、
⇨ 「Operating Samba connected with macOS」
にあるよ。
共有ファイル、バックアップのサーバー構築
Ubuntu LinuxにインストールするSambaのコンフィギュレーションを試す。 macOSから接続するFinderとTime Machineに最適な設定を見つける。
Time MachineとSambaとFinderは複雑な関係
ちかごろ、レンタルサーバーにデプロイするコンテンツマネジメントシステムをお試しで使っている。 そろそろ、ブログも引っ越そう!
ある時、SSH接続が切れた。Time Machineの進捗バーは、左と右を長い間、往復して問題を感じた。
Time Machineアドバタイジングと、バックアップストレージの提供は、Sambaが行なっている。 SSHで接続して、VARディレクトリのSambaのログを見る。
PANICが起きてる。
「Time Machineが関係ある!」思い浮かんで、Sambaの設定を見直す!
拡張属性でファイルシステムをマウントする!
Sambaで共有するファイルシステムを拡張属性でマウントするよ!
俺はいつも、nanoコマンドで設定ファイルを開いている。
コマンド例: sudo nano /etc/samba/smb.conf
Ubuntu起動時にマウントするディレクトリは、/etc/fstabを編集して、設定するよ。
sudo nano /etc/fstab
fstabの設定内容を書くね。 user_xattrが拡張属性なの。aclはアクセス制御リストですよ。POSIX ACLしたいなら付けてね。
Sambaでstreams_xattrスタックを使うので、マウントオプションにuser_xattrを付ける。
# <file system> <mount point> <type> <options> <dump> <pass>
/dev/ubuntu-vg/archive /var/archive ext4 defaults,acl,user_xattr 0 2
/dev/ubuntu-vg/timemachine /var/timemachine ext4 defaults,acl,user_xattr 0 2
Sambaのsmb.confを変えよう!
設定を変更する
Sambaの次の設定ファイルを書き換える。
/etc/samba/smb.conf
設定ファイルは、セクション、属性と設定値、を記述する。
フォーマットは次のとおり。
[セクション] ← セクションの開始。
属性 = 設定値
設定ファイルを書き換えると、ファイルサーバーへログイン時に使用するユーザー、公開ディレクトリのパス、ファイル参照権限、などをカスタマイズできる。
登録済みユーザーに限り、ログインする
[global]セクションを変更するよ
map to guest = Never ← 値を変更したよ。
guest ok = no ← 新しく追加したよ。
登録済みのユーザーに限り、ログイン可能にしたよ。
-
map to guest = Never
Sambaに登録済みユーザー「だけ」、ログインを成功する。
-
guest ok = no
Guestアカウントを無効にする。
Mac向けのSambaにする
[global]セクションの最後にfruitの属性値と設定値を加える!
vfs objects = catia fruit streams_xattr
fruit:copyfile = yes
fruit:model = MacSamba
fruit:resource = file
fruit:metadata = netatalk
fruit:encoding = native
fruit:veto_appledouble = no
fruit:wipe_intentionally_left_blank_rfork = yes
fruit:delete_empty_adfiles = yes
Sambaサーバーにファイルをアップロードしたときに、 ファイル転送が停止する問題に出会うかも。
- 絶対パスのパス長が127バイト以上では転送に失敗するFinderのバグ。macOSのFinderはバグがある。Appleへは報告済みだよ
- ファイルシステムのマウントは、user_xattrマウントオプションを忘れないでね!
ホームディレクトリへ書き込む
[home]セクションの書き込みについて!
read only = no ← 書き換え
; create mask = 0700 ← コメントアウトを使って行を無効にしたよ
; directory mask = 0700 ← コメントアウトを使って行を無効にしたよ
read only = no: ディレクトリに書き込みするよ。読み込みと実行もするよ。
セクションのcreate maskと、directory maskを無効にして、Sambaのデフォルト値を使用するよ。
- デフォルト値、create mask: 0744だよ。作成者は「フルアクセス」、他ユーザーは「読み出し」だよ。
- デフォルト値、directory mask: 0755だよ。作成者は「フルアクセス」、他ユーザーは「読み出し、移動」だよ。
Time Machineサーバーだよ!
[timemachine]セクションを追加したよ!
[timemachine]
path = /var/timemachine
valid users = recorder
access based share enum = yes
browseable = yes
writable = yes
fruit:time machine = yes
fruit:time machine max size = 256G
属性と設定値 | 効果 |
---|---|
path = /var/timemachine | Time Machineを保管するディレクトリ! |
valid users = recorder | 有効ユーザーは「recorder」 |
access based share enum = yes | 有効ユーザーのディレクトリアクセスを許可する。 |
browseable = yes | ディレクトリをFinderで見る。 |
writable = yes | 書き込みするディレクトリ。 |
fruit:time machine = yes | [timemachine]セクションはTime Machineの広告をするよ。 |
fruit:time machine max size = 256G | Time Machineのサイズは256GBまでね! |
ファイルサーバーだよ
[archive]セクションを追加したよ!
ファイルサーバーの設定。 使っている属性、を知りたい人は、上方に書いた「Time Machineサーバーだよ!」を見てね!
path = /var/archive
valid users = xxxxxxxx
veto files = /lost+found/
access based share enum = yes
browseable = yes
writable = yes
属性と設定値 | 効果 |
---|---|
veto files = /lost+found/ | lost+foundディレクトリをユーザーから隠すよ |
まとめ
Ubuntu Linuxに、Sambaをインストールし、ファイル共有、Time Machine広告を実現した。
Sambaの動作はすごく早くてよい、でもTime Machineはちょっと遅い。良いSamba設定ですよ!