別の端末からファイルシステムを共有できる
Sambaサーバでは複数ホスト間のファイル共有が簡単に実現出来ます。しかもOSに縛られないというのが更に便利です。例えばWindowsのエクスプローラーを開いてLinuxの共有フォルダに直接アクセス出来るという事です。
Samba構築手順
とりあえずSambaのインストールから起動まで実施します。
# yum install -y samba samba-common
# systemctl start smb nmb
# systemctl enable smb nmb
# firewall-cmd --add-service=samba --permanent
# firewall-cmd --reload
smbサービスがファイル共有やプリンタ共有などのSambaの基本的機能を提供します。nmbサービスはNetBIOSによる名前解決を行います。つまり名前でファイルサーバにアクセス出来るようにするという意味です。
設定ファイルの編集をします。
# vi /etc/samba/smb.conf
globalセクションからSamba全体の設定を行います。
[global]
workgroup = WORKGROUP
#Windowsのワークグループ名(違っていていてもアクセス可能)
server string = Welecom to SAMBA
#ネットワークコンピュータ一覧で表示される文字
netbios name = centos
#ファイルサーバ名
security = user
passdb backend = tdbsam
#ユーザー認証。sambaは独自のパスワードDBを利用。
dos charset = CP923
#Windows側文字コード
wins support = yes
#nmbdがwinsサーバとして機能する
# printing = cups
# printcap name = cups
load printers = no
disable spoolss = yes
# cups options = raw
#プリンタ共有は今回は行わない。
shareセクションで共有フォルダに対する設定を行います。
[share]
comment = 任意
path = /home/share
#共有フォルダのパス
browsable = yes
#ネットワークコンピュータに表示させる。
writable = yes
read only = no
#書き込み許可
printersセクションとprint$セクションはすべてコメントアウトします。
他にもゲストユーザーの処理とか属性とか色々出来るのですが今回は割愛します。
testparmコマンドで問題がなければ設定は完了です。
ユーザー作成
Linux側にsamba用のユーザーを新たに作成します。
# useradd user01
# passwd user01
Sambaへのユーザー登録。Sambaは独自でユーザー管理を行っているためこちらも必要です。
# pdbedit -a -u user01
# pdbedit -L
これで全ての設定が完了しました。Sambaを再起動してWindowsのエクスプローラーから「\\centos」でアクセスしてみると接続できる筈です。
試しにnmbdだけ切ってみると
# systemctl stop nmb
Windowsのコマンドプロンプトでログインキャッシュを削除。
net use
net use /delete *
再度「\\centos」でアクセスしてみると接続できないはず。nmbdが名前解決を行っていないことが確認出来ます。
今度は逆に
Windowsの共有フォルダをSambaでマウントするという事をやってみます。下記のコマンドを入力してみて下さい。Windows側のファイルがLinux側で確認出来るかと思います。
# mkdir /mnt/win
# mount -t cifs -o vers=3.0,user=XXX,password=YYY //XXX.XXX.XXX.XXX/共有フォルダ /mnt//win
# XXX,YYYはWindows側のidとパスワード。
つまりSambaはクライアントにもなれるということになります。