使用Samba實現文件共享:Windows和Linux之間


1、概述:

  1987 年,微軟公司和英特爾公司共同制定了 SMB(Server Messages Block,服務器消息 塊)協議,旨在解決局域網內的文件或打印機等資源的共享問題,這也使得在多個主機之間 共享文件變得越來越簡單。到了 1991 年,當時還在讀大學的 Tridgwell 為了解決 Linux 系統 與 Windows 系統之間的文件共享問題,基於 SMB 協議開發出了 SMBServer 服務程序。這是 一款開源的文件共享軟件,經過簡單配置就能夠實現 Linux 系統與 Windows 系統之間的文件 共享工作。當時,Tridgwell 想把這款軟件的名字 SMBServer 注冊成為商標,但卻被商標局以 SMB 是沒有意義的字符而拒絕了申請。后來Tridgwell 不斷翻看詞典,突然看到一個拉丁舞蹈 的名字—Samba,而且這個熱情洋溢的舞蹈名字中又恰好包含了“SMB”,於是 Samba 服務程序的名字由此誕生。 Samba 服務程序現在已經成為在 Linux 系統與 Windows系統之間共享文件的最佳選擇。 

Samba 服務程序的配置方法與之前講解的很多服務的配置方法類似,首先需要先通過 Yum 軟件倉庫來安裝 Samba 服務程序(Samba 服務程序的名字也恰巧是軟件包的名字):

yum install  samba

安裝好Samba后,了解Samba 服務程序中的參數以及作用,配置文件在/etc/samba/smb.conf如下表:

 

2、配置共享資源

  Samba 服務程序的主配置文件與前面學習過的 Apache 服務很相似,包括全局配置參數和 區域配置參數。全局配置參數用於設置整體的資源共享環境,對里面的每一個獨立的共享資 源都有效。區域配置參數則用於設置單獨的共享資源,且僅對該資源有效。創建共享資源的 方法很簡單,只要將表 12-2 中的參數寫入到 Samba 服務程序的主配置文件中,然后重啟該服務即可。 

  第1步:創建用於訪問共享資源的賬戶信息。

      在 RHEL 7 系統中,Samba 服務程序默認使用的是用戶口令認證模式(user)。這種認證模式可以確保僅讓有密碼且受信任的用戶訪問 共享資源,而且驗證過程也十分簡單。不過,只有建立賬戶信息數據庫之后,才能使用用戶口 令認證模式。另外,Samba 服務程序的數據庫要求賬戶必須在當前系統中已經存在。pdbedit 命令用於管理 SMB 服務程序的賬戶信息數據庫,格式為“pdbedit [選項] 賬戶”。 pdbedit 命令中使用的參數以及作用如表 12-3 所示:

補充:-c  "[D]"  -u   username  :暫停該Samba用戶的賬號。

   -c  "[]"  -u   username  :恢復該Samba用戶的賬號。

  第2步:創建用於共享資源的文件目錄。

      在創建時,不僅要考慮到文件讀寫權限的問題,而且由於/home 目錄是系統中普通用戶的家目錄,因此還需要考慮應用於該目錄的SELinux 安全 上下文所帶來的限制。在前面對 Samba 服務程序配置文件中的注釋信息進行過濾時,這些過 濾的信息中就有關於 SELinux安全上下文策略的說明,我們只需按照過濾信息中有關 SELinux 安全上下文策略中的說明中給的值進行修改即可。修改完畢后執行 restorecon 命令,讓應用於 目錄的新 SELinux 安全上下文立即生效。 

  第3步:設置 SELinux 服務與策略,使其允許通過 Samba 服務程序訪問普通用戶家目錄。

      執行 getsebool 命令,篩選出所有與 Samba 服務程序相關的 SELinux 域策略,根據策略的 名稱(和經驗)選擇出正確的策略條目進行開啟即可:

開啟samba_enable_home_dirs:

  第4步:在 Samba 服務程序的主配置文件(/etc/samba/smb.conf)中,根據表 12-2 所提到的格式寫入共享信息。

      在原始的配置文件中,[homes]參數為來訪用戶的家目錄共享信息,[printers]參數為共享的打 印機設備。這兩項如果在今后的工作中不需要,可以手動刪除,這沒有任何問題。

  第5步:Samba 服務程序的配置工作基本完畢。接下來重啟 smb 服務(Samba 服務程序在 Linux 系統中的名字為 smb)並清空 iptables 防火牆,然后就可以檢驗配置效果了。

從紅帽7開始防火牆已經慢慢拋棄之前的iptables,取而代之用firewalld。如果現階段系統仍然使用iptables,則需要清空防火牆規則;否則直接忽略下面兩條命令:

 

3、 Windows 訪問文件共享服務 

  無論 Samba 共享服務是部署 Windows 系統上還是部署在 Linux 系統上,通過 Windows 系統進行訪問時,其步驟和方法都是一樣的。下面假設 Samba 共享服務部署在 Linux 系統上, 並通過 Windows 系統來訪問 Samba 服務。Samba 共享服務器和 Windows 客戶端的 IP 地址在同一網段。

  要在 Windows 系統中訪問共享資源,只需在 Windows 的“運行”命令框中輸入兩個反斜杠(win10在我的電腦里面輸入IP地址),然后再加服務器的 IP 地址即可,如圖所示:

正確輸入Samba服務器地址后會彈出如下登陸框,直接輸入wenhewen賬戶名以及使用 pdbedit 命令設置的密碼后,就可以登錄到共享界面中了,如圖所示。此時,我們可以嘗試執行查看、寫入、更名、刪除文件等操作。

 

此時在windows端可以訪問linux端共享出來的文件夾database,並在里面進行文件處理操作。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM