shell php 程序员 wordpress Python Android 云计算 开源 linux Firefox 编程 nginx mysql Windows centos google java Ubuntu apache 微软

从源代码安装samba服务器

Samba是開放源代碼的GPL自由軟件,可以說又是自由軟件界的一個重大貢獻。Samba的出現徹底解決了類UNIX與Windows之間的資源共享與訪問,它以其簡潔、實用、靈活配置、功能強大的特點受到越來越廣泛的關註。也是因為這個原因,現在幾乎所有的類UNIX都可以使用Samba服務。

由於Samba作為類UNIX系統和Windows的通信橋梁,在設計上是讓類UNIX系統加入到Windows網絡中,而不是讓Windows加入類UNIX網絡中,因此需要了解一下Windows網絡的工作原理。Windows 9x、Windows Me、Windows NT中SMB使用137(UDP)、138(UDP)、139(TCP)、端口,Windows 2000以後的版本中使用445(TCP)端口。

Samba服務主要提供以下功能:

(1)共享UNIX系統上的資源(目錄、打印機)。

(2)使用Windows上的共享資源(目錄、打印機)。

(3)通過Windows對使用Samba資源的用戶進行認證。

(4)使用WINS服務進行名稱解析及瀏覽。

(5)通過SSL實現安全的數據傳輸。

Samba服務主要由以下兩個進程組成:

(1)nmbd:進行NetBIOS名稱解析,提供瀏覽服務顯示網絡上的共享資源列表。

(2)smbd:管理Samba服務器上的共享目錄、打印機等。主要是針對網絡上的共享資源進行管理服務。當要訪問服務器時,要查找共享文件,這時要靠smbd這個進程來管理數據傳輸。

Samba服務與Samba客戶端的工作流程如下:

(1)協議協商:客戶端在訪問Samba服務器時,發送negprot命令包,告知目標計算機其支持的SMB類型。Samba服務器根據客戶端情況,選擇最優的SMB類型,並做出回應。

(2)建立連接:當SMB類型確認後,客戶端會發送session setup命令數據包,提交賬號、密碼,請求與Samba服務器建立連接。如果客戶端通過身份驗證,Samba服務器會對session setup報文做出回應,並為用戶分配唯一的UID,在客戶端與其通信。

(3)訪問共享資源:客戶端訪問Samba共享資源時,發送tree connect命令數據包,通知服務器需要訪問的共享資源名,如果設置允許,Samba服務器會為每個客戶與共享資源的連接分配TID,客戶端即可以訪問需要的共享資源。

(4)斷開連接:共享完畢,客戶端向服務器發送tree disconnect報文關閉共享。

延伸阅读

评论