メインマシンとノートPC、スマートフォン間で データをやり取りするために Sambaの設定を行いましたが、 久々に設定すると SELinuxやFirewallなど勝手が だいぶ変わっていたのでメモを兼ねてまとめておきます。
状況
System Fedora 25 Firewalled SELinux 有効
/media/DATA … 4TBのWD Redの最大パーティションマウントポイント に他の機器からアクセスしたい。
Part 1 ソフトウェアの導入
$ su -
# dnf -y install samba samba-client
Part 2 共有ディレクトリの設定
# (mkdir /media/DATA) …今回は作成済み
# chmod -R 777 /media/DATA
Part 3 smb.confの設定
# nano /etc/samba/smb.conf
以下の設定を追加
○文字コード関連
unix charset = UTF-8
dos charset = CP932
※CP932 もともとは DOSで採用されていた Shift-JIS の独自実装版 その後 NEC(PC-98系)やIBMによる拡張がなされたあと Windows用に Windows-31J (MS932) として再統合された文字コード ややこしいが基本的に Shift-JISかShift-JISの拡張版という 認識でよいかと
○アクセス制限
hosts allow = 127. 192.168.1
自分自身(127...)とLAN内のアドレス(192.168.1.) からのみ アクセスを許可します。
○共有ディレクトリ関連
[DATA]
path = /media/DATA
writable = yes
create mode = 0777
directory mode = 0777
/media/DATA を諸々オープンな状態で公開
Part 3 サービスの起動と登録
# systemctl start smb nmb
# systemctl enable smb nmb
Part 4 ファイヤウォールとSELinux関連
○sambaログイン用のユーザー登録
# pdbedit -a hiroumauma
○FirewalledでSambaを許可
# firewall-cmd --add-service=samba --permanent
# firewall-cmd --reload
○SELinuxの設定
# setsebool -P samba_export_all_rw on
# restorecon -R /media/DATA
SELinuxが有効の場合デフォルトでは samba_share_t ラベルのないファイルやディレクトリを 表示しないようになっています。いちいち設定するのは面倒なので export_all_rw を許可しておけばいいと思います。
その他 ホームディレクトリ以下を共有公開したい場合は
# setsebool -P samba_enable_home_dirs on
などが必要です。 大抵はこの2つでことが済むのですが、もしトラブルが起こった場合は ここ で他の設定値も確認できます。
以上で設定完了です。
▲Android端末からデータのやり取り