「雑に」というのはセキュリティ面や複雑な設定などは行わず単純にWindowsから参照可能なファイルサーバを構築するということです。
本格的に構築を行う場合には別のサイトなども参考にすることを推奨します。
前提など
本環境ではOSに以下を使用します。
・CentOS Linux release 7.8.2003 (Core)
また今回は通常のWindows10PC上にインストールしたVMware Workstation Playerに仮想マシンCentOS7を構築し、そこにsambaをインストールしていきます。
前述の通り、複雑な設定などは行わずLinux上のディレクトリをWindowsホストマシンから参照できるようにすることをゴールとします。
準備
sambaのインストール
対象のマシン上にsambaがインストールされていない場合にはインストールを行います。
・確認
[root@localhost ~]# rpm -qa | grep samba [root@localhost ~]#
・インストール
なにも表示されない場合にはインストールされていないのでインストールから実行します。
[root@localhost ~]# yum install samba samba-common
・再確認
[root@localhost ~]# rpm -qa | grep samba samba-libs-4.10.16-13.el7_9.x86_64 samba-common-libs-4.10.16-13.el7_9.x86_64 samba-common-tools-4.10.16-13.el7_9.x86_64 samba-common-4.10.16-13.el7_9.noarch samba-client-libs-4.10.16-13.el7_9.x86_64 samba-4.10.16-13.el7_9.x86_64 [root@localhost ~]#
ユーザ作成
既に適当なユーザが作成されている場合には作成しなくても大丈夫かもしれませんが、ここでは分かりやすくLinux上にsamba用のユーザを作成しておきます。
・ユーザ作成
[root@localhost ~]# useradd smbusr [root@localhost ~]# passwd smbusr ユーザー smbusr のパスワードを変更。 新しいパスワード: よくないパスワード: このパスワードは 8 未満の文字列です。 新しいパスワードを再入力してください: passwd: すべての認証トークンが正しく更新できました。 [root@localhost ~]#
共有フォルダの作成
sambaではユーザを作成、登録するとユーザごとのホームディレクトリが各自のフォルダになるので、複数ユーザでの使用を想定している場合には共有フォルダを作成しておきます。
[root@localhost home]# mkdir /home/share [root@localhost home]# chmod 0777 /home/share/ [root@localhost home]# chown nobody:nobody /home/share/ [root@localhost home]# ll /home/ 合計 0 drwxrwxrwx. 2 nobody nobody 6 5月 28 00:44 share
SELinux、firewallの設定
ホスト側からサービス接続する際に阻害するものを無効化しておきます。
・SELinuxの無効化
[root@localhost samba]# getenforce Enforcing [root@localhost samba]# setenforce 0 [root@localhost samba]# getenforce Permissive
一旦無効化できたが、次回起動時に再び有効になるので、自動起動も無効化する。
/etc/selinux/config
のSELINUX
部分を以下のように修正します。
SELINUX=disabled
・firewallの無効化
[root@localhost samba]# systemctl stop firewalld
自動起動も停止しておく。
[root@localhost ~]# systemctl list-unit-files -t service | grep firewalld firewalld.service enabled [root@localhost ~]# systemctl disable firewalld Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service. Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service. [root@localhost ~]# systemctl list-unit-files -t service | grep firewalld firewalld.service disabled [root@localhost ~]#
設定
/etc/samba/smb.conf
sambaの基本的な設定はsmb.conf
ファイルから行います。
・設定ファイルのバックアップ
標準の設定ファイルをバックアップしておきます。
[root@localhost samba]# cp smb.conf smb.conf.org [root@localhost samba]#
・ /etc/samba/smb.conf
今回は以下のようにデフォルト設定を流用し、必要最低限の設定のみを行った。
[global] workgroup = WORKGROUP security = user passdb backend = tdbsam [homes] comment = Home Directories valid users = %S, %D%w%S browseable = No read only = No inherit acls = Yes [share] path = /home/share/ browseable = yes read only = no
workgroup
の値はWindowsマシンのworkgroupに合わせる必要があるので、必要ならWindowsマシンの設定を確認しておきましょう。
共有フォルダを作成する場合には[share]
にあたるディレクティブを追加しておく。
sambaユーザの登録
Linuxシステム上で作成したユーザをsambaサービスで使用できるようにsambaユーザとして登録します。
[root@localhost samba]# pdbedit -a smbusr new password: retype new password: Unix username: smbusr NT username: Account Flags: [U ] User SID: S-1-5-21-3883359787-3271332603-1083831788-1000 Primary Group SID: S-1-5-21-3883359787-3271332603-1083831788-513 Full Name: Home Directory: \\localhost\smbusr HomeDir Drive: Logon Script: Profile Path: \\localhost\smbusr\profile Domain: LOCALHOST Account desc: Workstations: Munged dial: Logon time: 0 Logoff time: 木, 07 2月 2036 00:06:39 JST Kickoff time: 木, 07 2月 2036 00:06:39 JST Password last set: 金, 28 5月 2021 00:31:19 JST Password can change: 金, 28 5月 2021 00:31:19 JST Password must change: never Last bad password : 0 Bad password count : 0 Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF [root@localhost samba]#
・ユーザ一覧を確認
[root@localhost samba]# pdbedit -L smbusr:1003:
samba起動
一連の設定、準備が完了したら設定を反映させます。
smbデーモンのステータスを確認して既に起動している場合には再起動、停止している場合には起動を行います。
[root@localhost home]# systemctl status smb ● smb.service - Samba SMB Daemon Loaded: loaded (/usr/lib/systemd/system/smb.service; disabled; vendor preset: disabled) Active: inactive (dead) Docs: man:smbd(8) man:samba(7) man:smb.conf(5) [root@localhost home]# systemctl start smb [root@localhost home]# systemctl status smb ● smb.service - Samba SMB Daemon Loaded: loaded (/usr/lib/systemd/system/smb.service; disabled; vendor preset: disabled) Active: active (running) since 金 2021-05-28 00:57:05 JST; 3s ago Docs: man:smbd(8) man:samba(7) man:smb.conf(5) Main PID: 1799 (smbd) Status: "smbd: ready to serve connections..." CGroup: /system.slice/smb.service tq1799 /usr/sbin/smbd --foreground --no-process-group tq1801 /usr/sbin/smbd --foreground --no-process-group tq1802 /usr/sbin/smbd --foreground --no-process-group mq1803 /usr/sbin/smbd --foreground --no-process-group 5月 28 00:57:05 localhost.localdomain systemd[1]: Starting Samba SMB Daemon... 5月 28 00:57:05 localhost.localdomain smbd[1799]: [2021/05/28 00:57:05.3076... 5月 28 00:57:05 localhost.localdomain systemd[1]: Started Samba SMB Daemon. 5月 28 00:57:05 localhost.localdomain smbd[1799]: daemon_ready: daemon 's... Hint: Some lines were ellipsized, use -l to show in full. [root@localhost home]
必要に応じて、自動起動の設定を行っておきます。
[root@localhost home]# systemctl enable smb Created symlink from /etc/systemd/system/multi-user.target.wants/smb.service to /usr/lib/systemd/system/smb.service.
確認
ここまでの設定が完了したら、Windowsホストマシンから参照します。
今回構築したサーバのIPは192.168.142.134
なのでWindowsホストのエクスプローラなどから\\192.168.142.134
に接続を行います。
上記のようにWindowsファイルシステムでLinux上のディレクトリが参照できれば問題ありません。
とりあえずただWindowsマシンから参照できるようにするだけなら比較的シンプルですね。
参考ブログ様
CentOS 7でSambaのWindowsファイルサーバ構築してみる - Qiita
Sambaの環境構築手順 - Qiita