CentOS7にSambaをインストール

Sambaは、Linuxでファイルサーバを作る際は必須と言ってもいいパッケージだ。
今回は、CentOS 7にSambaをインストールする方法について。

1.sambaのインストール

まずは必要なパッケージのインストール。
以下のコマンドを実行する。

bash
yum install samba samba-client samba-common -y

2.sambaの初期設定

次に、sambaの設定ファイルである「smb.conf」をバックアップ、編集する。

bash
mv /etc/samba/smb.conf /etc/samba/smb.conf.bk vi /etc/samba/smb.conf

「smb.conf」の記述は、以下の設定例のようにすると良いだろう。

ini
[global] workgroup = WORKGROUP server string = Samba Server %v netbios name = centos7 security = user map to guest = bad user dns proxy = no #========================================================== [Share] #共有させるフォルダ path = /samba/share/ #マイネットワークに表示させるか否か browsable =yes #書き込み可能かどうか writable = yes #ゲストユーザのログインが可能かどうか guest ok = yes #読込みのみとするか read only = no

「smb.conf」の記述後、共有するフォルダを作成する。

bash
mkdir -p /samba/share chmod -R 0777 /samba/share chown -R nobody:nobody /samba/share

sambaの起動設定を行うため、以下のコマンドを実行する。

bash
systemctl enable smb.service systemctl enable nmb.service systemctl restart smb.service systemctl restart nmb.service

Linux側でsambaの通信が行えるよう、firewallの設定を変更する。

bash
firewall-cmd --permanent --zone=public --add-service=samba firewall-cmd --reload

SELinuxの設定を変更し、sambaの利用を許可する。

bash
chcon -t samba_share_t /samba/share

3.アクセスしてみる

これで、設定が完了したLinuxにsamba経由でアクセス出来るようになった。

4.Samba利用時にパスワードを設定する

これでファイルサーバとして利用出来るようになったので、次は特定のユーザのみが編集出来るフォルダを作成してみよう。
ユーザはパスワードでログインする。

まずは、以下のコマンドでユーザやグループを作成する。

bash
useradd test groupadd testgroup usermod -a -G testgroup test

次に、ユーザ「test」にsamba用のパスワードを設定する。

bash
$ smbpasswd -a test New SMB password: #パスワードを入力 Retype new SMB password: #パスワードを再度入力 Added user test.

以下のコマンドで、ユーザグループ「testgroup」がsambaで用いるためのフォルダを作成する。

bash
mkdir /home/sectest chown -R test:testgroup /home/sectest/ chmod -R 0777 /home/sectest/ chcon -t samba_share_t /home/sectest/

再度「smb.conf」を編集するため、viエディタを起動させる。

bash
vi /etc/samba/smb.conf

以下の内容を「smb.conf」の末尾に付け加える。

bash
[SecTest] path = /home/sectest valid users = @testgroup guest ok = no writable = yes browsable = yes

最後に、sambaのサービスを再起動させる。

bash
systemctl restart smb.service systemctl restart nmb.service

これで、セキュリティ設定をされているフォルダ「SecTest」が表示される。

ログイン時には、先ほど設定したユーザとパスワードが求められる。