samba
timemachine
centos7

CentOS7上にSambaでTime Machineサーバを構築する

先日リリースされたSamba 4.8.0でTime Machineサーバの機能がサポートされたようなので、CentOS 7.4上にインストールしてみました。

インストール

依存パッケージのインストール

$ sudo yum install gnutls-devel libacl-devel pam-devel openldap-devel

予め入っていたパッケージもあるので、上記以外に必要になるものもあるかもしれません。うまくいかない場合は公式Wikiに載っているパッケージを片っ端からインストールしてみてください。

ビルド

$ wget https://download.samba.org/pub/samba/stable/samba-4.8.0.tar.gz
$ tar -zxf samba-4.8.0.tar.gz
$ cd samba-4.8.0/
$ ./configure
$ make

インストール

$ sudo make install

ディレクトリの作成

Time Machineサーバ用のディレクトリを作成します(好きな場所に作成してください。私は/mybookにマウントされている外部HDD上に作成しました)。
bash
$ sudo mkdir /mybook/timemachine
$ sudo chmod 0777 /mybook/timemachine

設定ファイルの作成

/usr/local/samba/etc/smb.conf
[global]
        workgroup = SAMBA
        security = user
        passdb backend = tdbsam

[timemachine]
        path = /mybook/timemachine
        writable = yes
        guest ok = yes
        vfs objects = catia fruit streams_xattr
        fruit:resource = file
        fruit:metadata = netatalk
        fruit:locking = netatalk
        fruit:encoding = native
        fruit:time machine = yes
        fruit:time machine max size = 1T

とりあえずこの設定で使えるようになりましたが、詳しい設定はリファレンスを参照してください。

サービスの設定

/usr/lib/systemd/system/smb.service
[Unit]
Description=Samba SMB Daemon
After=syslog.target network.target nmb.service winbind.service

[Service]
Environment=KRB5CCNAME=FILE:/run/samba/krb5cc_samba
Type=forking
NotifyAccess=all
PIDFile=/usr/local/samba/var/run/smbd.pid
LimitNOFILE=16384
EnvironmentFile=-/etc/sysconfig/samba
ExecStart=/usr/local/samba/sbin/smbd $SMBDOPTIONS
ExecReload=/usr/bin/kill -HUP $MAINPID
LimitCORE=infinity

[Install]
WantedBy=multi-user.target
/usr/lib/systemd/system/nmb.service
[Unit]
Description=Samba NMB Daemon
After=syslog.target network.target

[Service]
Environment=KRB5CCNAME=FILE:/run/samba/krb5cc_samba
Type=forking
NotifyAccess=all
PIDFile=/usr/local/samba/var/run/nmbd.pid
EnvironmentFile=-/etc/sysconfig/samba
ExecStart=/usr/local/samba/sbin/nmbd $NMBDOPTIONS
ExecReload=/usr/bin/kill -HUP $MAINPID
LimitCORE=infinity

[Install]
WantedBy=multi-user.target
$ sudo systemctl daemon-reload

アクセス用ユーザの作成

OS上のユーザは既に存在するものとして、Samba用のユーザ作成&パスワード設定を行います。
bash
$ sudo /usr/local/samba/bin/pdbedit -a ユーザー名
new password:
retype new password:

firewallの設定

$ sudo firewall-cmd --permanent --zone=public --add-service=samba
$ sudo firewall-cmd --reload

起動

$ sudo systemctl start smb
$ sudo systemctl start nmb

OS起動時に自動起動させる場合は、以下のコマンドで。
bash
$ sudo systemctl enable smb
$ sudo systemctl enable nmb

これでMacのバックアップサーバとして使えるようになりました。

環境情報

  • Cent OS 7.4.1708
  • Samba 4.8.0
  • Mac OS X 10.13.2 (High Sierra)