macOS向けのSambaファイル共有の設定をする

2023/01/02

Linux

t f B! P L

はじめに

Sambaファイル共有を行うための最低限の設定を行います。

サーバーOSは、Debian GNU/Linuxです。

MacでSMBファイル共有を設定する」と異なる設定です。

クライアントOSは次の通りです。

  • iPad iOS 15.7 6
  • macOS Ventura 13.1
  • Windows 10 22H2
  • Windows 11 22H2

sambaのバージョンは、4.13です。

SMBのバージョンはSMBv3です。ですが、古いiPad/iPhoneはSMBv3を利用できませんでした。そのため、SMBv3を固定せず、SMBv2からSMBv3の範囲を利用します。

ネットワークインターフェイスはeno1を利用します。

NetBIOS over TCP/IPのネットワークは既定値のWORKGROUPです。

ゲストで入れるようにします。

接続することを最優先としたいのでユーザー認証は省く。

あとから、ユーザー認証の設定ができる。

設定方法

はじめに、Debian GNU/Linuxサーバへログインする。

ファイルの保管場所を作成する

sudo su

mkdir -p /srv/nas

mkdir -p /srv/timemachine

chmod 0770 /srv/nas

chmod 0770 /srv/timemachine

chown root:nobody /srv/nas

chown root:nobody /srv/timemachine

※ゲストアクセスさせたいのでnobodyグループを指定する。

インストールを開始する

sambaとavahi-daemonをインストールする。

apt -y install samba avahi-daemon

※mDNSやBonjourを利用しないときは、avavhi-daemonは不要です。

smb.confを設定する

vim /etc/samba/smb.conf


[global]

        interfaces = eno1

        log file = /var/log/samba/log.%m

        logging = file

        map to guest = Bad User

        max log size = 500

        panic action = /usr/share/samba/panic-action %d

        server min protocol = SMB2    #iPhone iPad用の設定

        fruit:model = Xserve

        idmap config * : backend = tdb

[nas]

        delete veto files = Yes     #macOS用の設定

        force create mode = 0770

        force directory mode = 0770

        guest ok = Yes     #ゲストアクセス用の設定

        guest only = Yes    #ゲストアクセス専用の設定

        inherit permissions = Yes

        path = /srv/nas    #ファイルの保管場所

        read only = No

        veto files = /._*/.DS_Store/     #macOS用の設定

        vfs objects = fruit streams_xattr     #macOS用の設定

        

       #macOSで現在利用していないリソースフォークファイルを消す

        fruit:wipe_intentionally_left_blank_rfork = Yes     #macOS用の設定

        fruit:metadata = stream     #macOS用の設定

        fruit:resource = stream     #macOS用の設定


#TimeMachineを利用する場合は下記も設定する

[TimeMachine]

        path = /srv/timemachine

        guest ok = Yes

        guest only = Yes 

        read only = No

        vfs objects = fruit streams_xattr

        fruit:time machine max size = 512G    #最大512GBまで許可

        fruit:time machine = Yes    #タイムマシーンを有効


以上です。

修正がおわったら保存して閉じます。

avahi-daemonはzeroconfig機能で自動設定されます。

sambaとavahi-daemonは自動で連携します。

サービス起動の設定を行う

# systemctl enable nmbd smbd avahi-daemon

# systemctl restart nmbd smbd avahi-daemon


ファイアウォール設定を行う

# firewall-cmd --add-service=samba --permanent

# firewall-cmd --add-service=mdns --permanent

# firewall-cmd --reload

SELinux設定を行う

# semanage fcontext -a -t samba_share_t "/srv/nas(/.*)?"

# restorecon -R -v /srv/nas

# semanage fcontext -a -t samba_share_t "/srv/timemachine(/.*)?"

# restorecon -R -v /srv/timemachine


動作確認を行う

mDNSでpingを確認する。

サーバーのホスト名が、nas01でしたら、nas01.localにpingしてみましょう。


Microsoft Windows [Version 10.0.19045.2364]

(c) Microsoft Corporation. All rights reserved.

C:\>ping nas01.local

nas01.local [fe80::192:168:10:4]に ping を送信しています 32 バイトのデータ:

fe80::192:168:10:4 からの応答: 時間 <1ms

fe80::192:168:10:4 からの応答: 時間 <1ms


fe80::192:168:10:4 の ping 統計:

    パケット数: 送信 = 2、受信 = 2、損失 = 0 (0% の損失)、

ラウンド トリップの概算時間 (ミリ秒):

    最小 = 0ms、最大 = 0ms、平均 = 0ms


最後に端末からアクセスしてみましょう。

iPad/iPhone/macOS Ventura
smb://nas01.local/nas

Windows 10 22H2
\\nas01.local\nas

これで以上です。お疲れさまでした。

QooQ