CentOS 7部署SAMBA檔案共用服務

2020-10-27 11:00:27

        SMB(Server Message Block,服務資訊塊)又稱CIFS(Common Internet File System,通用Internet檔案系統),是一種應用層網路傳輸協定。微軟公司和英特爾公司於1987年共同制定了SMB,旨在解決區域網內的檔案或印表機等資源的共用問題。Samba是一款基於SMB/CIFS協定的開源軟體,通過簡單的設定就能夠實現Linux作業系統與Windows作業系統之間的檔案共用。
        Samba由smbd和nmbd兩個守護行程組成,採用伺服器端/使用者端模式。smbd程序除了為使用者端提供檔案共用與印表機服務,還負責使用者許可權驗證以及鎖功能。smbd預設監聽的埠是TCP協定的139與445,Samba通過smb服務啟動smbd程序,使用netstat -nutlp可檢視程序埠資訊。nmbd程序提供NetBIOS名稱服務,以滿足基於Common Internet File System(CIFS)協定的共用存取環境。Samba通過nmb服務啟動nmbd程序,該程序預設使用是UDP 137埠。
一、部署samba伺服器端
1、安裝samba。

yum -y install samba

2、備份samba主組態檔(可選操作)。

cp -a /etc/samba/smb.conf /etc/samba/smb.conf.bak

3、建立共用目錄並修改目錄許可權。

mkdir /samba
chmod -Rf 777 /samba

4、編輯samba主組態檔/etc/samba/smb.conf,新增如下資訊。

[samba]
comment = samba share
path = /samba
public = no
writable = yes
guest ok = no

5、使用命令pdbedit建立用於存取共用資源的使用者資訊資料庫。

groupadd samba -g 3000
useradd lw -u 4000 -g 3000 -s /sbin/nologin
pdbedit -a lw
說明:
-u 4000:指定使用者ID為4000
-g 3000:指定使用者的所屬組ID為3000,指定的組必須先於使用者建立。
-s /sbin/nologin:指定用登入的shell。
pdbedit命令用於管理SMB服務程式的使用者資訊資料庫,常用引數及作用如下所示:
-a:建立Samba使用者。
-x:刪除Samba使用者。
-u:指定本地使用者。
-L:列出使用者列表。
-Lv:列出使用者詳細資訊的列表。

7、重新啟動smb服務並將其加入開機啟動。

systemctl restart smb
systemctl enable smb

二、部署Windows 10使用者端
1、使用\192.168.10.10存取samba共用目錄,出現如下錯誤提示,是因為沒有關閉或設定Linux防火牆。

2、設定或關閉Linux防火牆。

firewall-cmd --permanent --add-service=samba    #預設區域新增samba服務
firewall-cmd --reload    #重新載入防火牆

systemctl stop firewalld    #關閉防火牆
systemctl disable firewalld    #禁用防火牆

3、使用\192.168.10.10存取samba共用目錄,在彈出的視窗中輸入samba伺服器中建立的使用者名稱和密碼,單擊確定進入。


4、雙擊共用目錄(samba),出現沒有許可權存取的錯誤提示。

5、檢視並設定與samba相關的selinux boolean(布林值)。

getsebool -a | grep samba    #檢視與samba相關的selinux Boolean
setsebool samba_export_all_ro=on     #開啟唯讀許可權
setsebool samba_export_all_rw=on     #開啟讀寫許可權

6、雙擊共用目錄(samba),進入目錄建立目錄和檔案。

7、依次開啟「此電腦–計算機–對映網路驅動器–對映網路驅動器。

8、選擇驅動器編號(X:)、資料夾(\192.168.10.10\samba),然後單擊完成。