【Linux】ファイルサーバの構築 ~ Samba ~

■ はじめに

 * Windowsファイル共有サーバを構築する必要があるので調べる
  => Samba (サンバ) を使用する

■ 用語

SMB

SMB : Server Message Block
 * Windowsコンピュータの間でファイル共有やプリンタ共有などを行うことができるようにしたプロトコル

CIFS

CIFS : Common Internet File System
 * SMBを拡張し、Windows以外のOSでもファイル共有やプリンタ共有などを行うことができるようにしたプロトコル

■ 構築

構築環境

 * OS : CentOS7
 * ファイルサーバ : Samba Version 4.4.4

構築手順

[1] インストール
[1-1] Samba をインストールする

sudo yum -y install samba

[1-2] 確認としてバージョンを表示する

smbd -V
# 「Version 4.4.4」と表示
[2] Samba の設定
[2-1] Windows上で、ワークグループを確認する
      (Cドライブがみえるとこで、右クリックし、[プロパティ]で確認できる。
      今回は、ワークグループが「WORKGROUP」だったとする)

[2-2] 「/etc/samba/smb.conf」を修正する

sudo vi /etc/samba/smb.conf

【修正前】
[global]
        workgroup = SAMBA

【修正後】
[global]
        workgroup = WORKGROUP

[2-3] Samba 用のユーザを追加する

# ユーザ「sambaadmin」を追加
sudo useradd sambaadmin

# ユーザ「sambaadmin」を Sambaに追加
sudo smbpasswd -a sambaadmin
# パスワードを入力する(覚えておく。とりあえず、ここでは「password」としておく)
※ 補足 : 設定ファイルのサンプルについて
 * 「less /etc/samba/smb.conf.example」に設定ファイルのサンプルあり。

sudo less /etc/samba/smb.conf.example
[3] Samba の起動
[3-1] Samba を起動する

# ファイル共有、プリンタ共有などのSMBサービスを起動
sudo systemctl start smb.service
# NetBIOSのネームサービスを起動
sudo systemctl start nmb.service

# 念のため、状態を確認(「active (running) 」が表示されていたらOK)
sudo systemctl status smb.service
sudo systemctl status nmb.service

[3-2] 自動起動を設定しておく

sudo systemctl enable smb.service
sudo systemctl enable nmb.service

# 念のため、確認(「enabled」が表示されていたらOK)
sudo systemctl is-enabled smb.service
sudo systemctl is-enabled nmb.service
[4] ファイアウォールの設定
[4-1] ファイアウォールを通るようにしておく

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

# 念のため、確認(「samba-client」が表示されていたらOK)
sudo firewall-cmd --list-all-zones
[5] SELinuxの設定
[5-1] sambaにhomeディレクトリ下の公開を許可する

# sambaにhomeディレクトリ下の公開を許可するかどうかを設定。
sudo setsebool -P samba_enable_home_dirs on

# 念のため、確認(「samba_enable_home_dirs --> on」が表示されていたらOK)
sudo getsebool samba_enable_home_dirs
[6] 動作確認
[6-1] Windows上で「\\XXX.XXX.XXX.XXX」(XXX:Sambaを入れたIPアドレス)を入力
[6-2] [6-1] を行うと、ダイアログ表示され、IDとパスワードを聞かれるので、
      手順[2-3]のユーザIDとパスワードを入力する
      (今回の場合、「sambaadmin」「password」を入力する)
[6-3] [6-2] を行うと、フォルダ「sambaadmin」が表示されており、ダブルクリックすると、
      そのフォルダに入れる(あとは、この中に自由にファイルおけばOK)

■ Sambaあれこれ

共有スペースを指定したディレクトリにするには...

 * 「[5] SELinuxの設定」の場合、「sambaadmin」のホーム直下になるのだが、それは嫌って人に...
[A] ディレクトリ の設定
[A-1] 共有スペースのディレクトリを作成
sudo mkdir -p /var/samba/share

[A-2] アクセス権をフルアクセスできるようにする
sudo chmod 777 /var/samba/share

[A-3] SELinuxでSambaからのアクセスを許可
sudo chcon -R -t samba_share_t /var/samba/share
[B] 設定ファイルの修正
[B-1] 「/etc/samba/smb.conf」の末尾に以下の【追記内容】を追加する

sudo vi /etc/samba/smb.conf

【追記内容】
[share]
	# Windows側から見た時に付加されるコメント
	comment = Share directory
	# 共有するディレクトリのパス
	path = /var/samba/share
	# 有効なユーザ
	valid users = sambaadmin
	# Windowsの共有一覧にホームディレクトリを表示するか
	browseable = Yes
	# 書き込みを許可する
	writable = Yes
	# ファイルのアクセス権を付与
	create mode = 0777
	# ディレクトリのアクセス権を付与
	directory mode = 0777
[C] Sambaの再起動
sudo systemctl restart smb.service
sudo systemctl restart nmb.service
[D] 動作確認
[D-1] Windows上で「\\XXX.XXX.XXX.XXX\share」(XXX:Sambaを入れたIPアドレス)を入力
 => アクセスできるはず


関連記事

Linux】バックアップ ~ rsync

http://blogs.yahoo.co.jp/dk521123/36753938.html