Sambaは、Microsoft社が定めたSMB(Server Message Block)プロトコルを使い、ファイル共有を実現する。Windows 8と通信する場合はSMB 3.0(SMB3_00)を使用し、Windows 10ではSMB 3.1.1(SMB3_11)が標準で使われる。
次のコマンドでsambaをインストールする。
$ sudo dnf install samba samba-client -y
依存関係でpython3-dns, python3-ldb, python3-samba, python3-talloc, python3-tdb, python3-tevent, samba-common-tools, samba-libs, tdb-toolsがインストールされる。
主なデーモンプロセスはファイル共有とプリンタサービスのsmbd、名前解決を行うnmbdがある。また、samb-winbindパッケージの追加インストールでWindowsのSID(Security Identifier)マッピングを行うName Service Switch(NSS)インタフェースを提供するwinbinddがある。
以下のコマンドでsambaを起動する。
$ sudo systemctl enable smb --now
続いてfirewallの設定も行う。
$ sudo firewall-cmd --add-service=samba
$ sudo firewall-cmd --runtime-to-parmanent
デフォルトではTDB(Trivial DataBase)でユーザー管理を行っている。確認方法を示す。
$ cat /etc/samba/smb.conf
(略)
passdb backend = tdbsam
(略)
まずは、以下のようなコマンドでユーザーを追加する。cpageを追加する例を示す。
$ sudo pdbedit -a -u cpage
new password:(パスワード)
retype new password:(パスワード)
ユーザー一覧を表示するには次のコマンドを実行する。
$ sudo pdbedit -L
これに「-v」オプションを追加すると詳細を表示する。
cpageユーザーを削除するには次のコマンドを実行する。共有フォルダは削除されない。
$ sudo pdbedit -x -u cpage
最初にSELinuxの設定を行う必要がある。
$ sudo setsebool -P samba_enable_home_dirs on
/etc/samba/smb.conf はとりあえずそのままでよい。
ここではLinuxホームディレクトリをZドライブに割り当てる設定を行う。
1.LinuxのIPアドレスを確認し(192.168.10.10とする)、Windowsのエクスプローラに「\\192.168.10.10\cpage」と入力する。
2.資格情報としてユーザー管理で登録したユーザー名「cpage」とパスワードを入力する。
(ここでアクセスが可能になる)
3.共有フォルダを右クリックし、[ネットワーク ドライブの割り当て]をクリックする。
4.ドライブを「Z」、[サインイン時に再接続する]にチェックを入れて[完了]をクリックする。
/srv/samba/share2 を共有する設定を行う。以下のコマンドを実行する。
$ sudo mkdir /srv/samba
$ sudo mkdir /srv/samba/share2
$ sudo semanage fcontext -a -t samba_share_t "/srv/samba(/.*)?
$ sudo restorecon -R -v /srv/samba/share2
$ sudo chmod 777 /srv/samba/share2
次に/etc/samba/smb.confを編集する。以下を追記する。
[Share2]
comment = Sharing folder#2
path = /srv/samba/share2
writable = Yes
inherit acls = Yes
リロードして設定を反映する。
$ sudo systemctl reload smb
匿名アカウントがアクセスできる共有を調べる。
$ smbclient -U% -L localhost
smbサービスのログを調べる。/var/log/samba/log/smbdを開くか、以下のコマンドを実行する。
$ sudo tail -f /var/log/samba/log/smbd
ユーザーの接続を調べる。
$ sudo smbstatus