Windows とのファイル共有のために、Samba サーバをインストールし、その後 firewalld と SELinux の設定を行う。
インストール
[takatoh@aybesea ~]$ sudo yum install samba samba-client samba-winbind samba-winbind-clients
firewalldの設定
firewalld の詳しい説明はまた別の機会に。ここでは、samba サーバにアクセスできるようにだけする。
[takatoh@aybesea ~]$ sudo firewall-cmd --add-service samba --zone public --permanent success [takatoh@aybesea ~]$ sudo firewall-cmd --add-service samba-client --zone public --permanent success
smb.confの編集
誰でもアクセスできる共有フォルダを作る。/etc/samba/smb.conf ファイルを次のように編集。globa セクション。
[global] workgroup = PANICBLANKET security = user passdb backend = tdbsam printing = cups printcap name = cups load printers = yes cups options = raw dos charset = CP932 unix charset = UTF-8 display charset = UTF-8 map to guest = Bad User
共有フォルダのセクション。ここでは share という共有フォルダを作った。
[share] path = /mnt/wiwaxia/share writable = yes force create mode = 0666 force directory mode = 0777 guest ok = yes guest only = yes
共有用ディレクトリの作成
[takatoh@aybesea ~]$ cd /mnt/wiwaxia [takatoh@aybesea wiwaxia]$ sudo mkdir share
自動定と起動
[takatoh@aybesea wiwaxia]$ sudo systemctl enable smb Created symlink from /etc/systemd/system/multi-user.target.wants/smb.service to /usr/lib/systemd/system/smb.service. [takatoh@aybesea wiwaxia]$ sudo systemctl enable nmb Created symlink from /etc/systemd/system/multi-user.target.wants/nmb.service to /usr/lib/systemd/system/nmb.service. [takatoh@aybesea wiwaxia]$ sudo systemctl enable winbind Created symlink from /etc/systemd/system/multi-user.target.wants/winbind.service to /usr/lib/systemd/system/winbind.service.
[takatoh@aybesea ~]$ sudo systemctl start smb [takatoh@aybesea ~]$ sudo systemctl start nmb [takatoh@aybesea ~]$ sudo systemctl start winbind
Windowsから確認
ここでいったん、Windows 側からアクセスできるかどうか確認してみたところ、ダメだった。たぶん SELinux のせいだ。
SELinuxの設定
SELinux についても詳しいことは別の機会にして、ここでは必要そうな設定だけをする。
[takatoh@aybesea ~]$ sudo setsebool -P allow_smbd_anon_write=on [takatoh@aybesea ~]$ sudo setsebool -P samba_share_nfs=on [takatoh@aybesea ~]$ sudo setsebool -P samba_export_all_rw=on [takatoh@aybesea ~]$ sudo sestatus SELinux status: enabled SELinuxfs mount: /sys/fs/selinux SELinux root directory: /etc/selinux Loaded policy name: targeted Current mode: enforcing Mode from config file: enforcing Policy MLS status: enabled Policy deny_unknown status: allowed Max kernel policy version: 28
さて、これでもう一回試してみたけどダメだった。
何がいけない?
firewalld をもう一度確認してみる。
[takatoh@aybesea ~]$ sudo firewall-cmd --list-service ssh dhcpv6-client
あれ?samba が追加されてない。
[takatoh@aybesea ~]$ sudo cat /etc/firewalld/zones/public.xml <?xml version="1.0" encoding="utf-8"?> <zone> <short>Public</short> <description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description> <service name="ssh"/> <service name="dhcpv6-client"/> <service name="samba"/> <service name="samba-client"/> </zone>
ゾーンの設定ファイルには反映されている。何故だ?
firewalld をリスタートさせてみる。
[takatoh@aybesea ~]$ sudo systemctl restart firewalld [takatoh@aybesea ~]$ sudo firewall-cmd --list-service ssh dhcpv6-client samba samba-client
今度は反映された。
もう一度 Windows からアクセスしてみると、共有フォルダは見つかったものの書き込みができない。
共有用ディレクトリのパーミッションを確認してみると、root 以外は書き込みができないようになっていたので、これを変更してみる。
[takatoh@aybesea ~]$ cd /mnt/wiwaxia [takatoh@aybesea wiwaxia]$ ls -l 合計 20 drwx------. 2 root root 16384 12月 30 21:21 lost+found drwxr-xr-x. 2 root root 4096 1月 1 17:52 share [takatoh@aybesea wiwaxia]$ sudo chmod 777 share [takatoh@aybesea wiwaxia]$ ls -l 合計 20 drwx------. 2 root root 16384 12月 30 21:21 lost+found drwxrwxrwx. 2 root root 4096 1月 1 18:31 share
これでめでたく、共有フォルダに読み書きできるようになった。