はじめに
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です。
ゲストで入れるようにします。
接続することを最優先としたいのでユーザー認証は省く。
あとから、ユーザー認証の設定ができる。
設定方法
ファイルの保管場所を作成する
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(/.*)?"
# semanage fcontext -a -t samba_share_t "/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