CIFSプロトコルの概要
CIFS(Common Internet File System)は、異なるOS間でファイル共有を実現するプロトコルです。WindowsクライアントとLinuxサーバー間でのシームレスなデータ共有を可能にし、複数ノードからの同時マウントや並行書き込みをサポートしています。
サーバー側の設定手順
Sambaパッケージのインストール
まず、SambaとCIFSユーティリティをシステムに導入します。
[root@fileserver ~]# dnf -y install samba samba-client cifs-utils
共有ディレクトリの作成と権限設定
共有対象のディレクトリを作成し、適切なアクセス権限を付与します。
[root@fileserver ~]# mkdir -p /srv/shared_folder
[root@fileserver ~]# chmod 2770 /srv/shared_folder
[root@fileserver ~]# chown root:sharegroup /srv/shared_folder
[root@fileserver ~]# cp /etc/hostname /srv/shared_folder/sample.txt
Sambaアクセス用ユーザーの作成
システムユーザーを作成し、Sambaデータベースに登録します。シェルアクセスは無効化しておきます。
[root@fileserver ~]# groupadd sharegroup
[root@fileserver ~]# useradd -G sharegroup -s /sbin/nologin smbuser01
[root@fileserver ~]# useradd -G sharegroup -s /sbin/nologin smbuser02
[root@fileserver ~]# smbpasswd -a smbuser01
New SMB password: [パスワード入力]
Retype new SMB password: [パスワード再入力]
Added user smbuser01.
[root@fileserver ~]# smbpasswd -a smbuser02
Samba設定ファイルの編集
/etc/samba/smb.confに共有設定を追加します。
[root@fileserver ~]# vim /etc/samba/smb.conf
[global]
workgroup = WORKGROUP
security = user
passdb backend = tdbsam
[ShareData]
comment = NAS Shared Directory
path = /srv/shared_folder
browseable = yes
writable = yes
valid users = @sharegroup
write list = smbuser01 smbuser02
create mask = 0660
directory mask = 0770
hosts allow = 192.168.10. 127.
主な設定パラメータの説明:
path: 共有ディレクトリの絶対パスvalid users: アクセスを許可するユーザーまたはグループwrite list: 書き込み権限を持つユーザーhosts allow: 接続を許可するネットワーク範囲
サービスの起動と有効化
[root@fileserver ~]# systemctl enable --now smb nmb
[root@fileserver ~]# systemctl status smb
ファイアウォールとSELinuxの設定
ファイアウォールでSambaサービスを許可します。
[root@fileserver ~]# firewall-cmd --permanent --add-service=samba
[root@fileserver ~]# firewall-cmd --permanent --add-service=samba-client
[root@fileserver ~]# firewall-cmd --reload
success
SELinuxのブール値を設定します(必要に応じて)。
[root@fileserver ~]# setsebool -P samba_export_all_rw on
[root@fileserver ~]# semanage fcontext -a -t samba_share_t "/srv/shared_folder(/.*)?"
[root@fileserver ~]# restorecon -Rv /srv/shared_folder
Linuxクライアントからのマウント
手動マウント
CIFSファイルシステムとして手動でマウントします。
[root@client ~]# mkdir -p /mnt/nas_share
[root@client ~]# mount -t cifs //192.168.10.100/ShareData /mnt/nas_share -o username=smbuser01,password=SecurePass123,uid=1000,gid=1000
自動マウント設定
/etc/fstabにエントリを追加し、システム起動時に自動的にマウントされるようにします。認証情報を別ファイルに保存する方法が推奨されます。
[root@client ~]# echo "username=smbuser01" > /etc/samba/credentials
[root@client ~]# echo "password=SecurePass123" >> /etc/samba/credentials
[root@client ~]# chmod 600 /etc/samba/credentials
[root@client ~]# vim /etc/fstab
//192.168.10.100/ShareData /mnt/nas_share cifs credentials=/etc/samba/credentials,uid=1000,gid=1000 0 0
[root@client ~]# mount -a
Windowsクライアントからの接続
Windowsエクスプローラーのアドレスバーに以下を入力します。
\\192.168.10.100\ShareData
ネットワークドライブの割り当てを使用して永続的に接続することも可能です。