歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> 利用Linux系統的Samba服務模擬NT域

利用Linux系統的Samba服務模擬NT域

日期:2017/2/27 9:24:20   编辑:更多Linux
現在,許多單位都在建設自己的局域網以實現資源共享,其中文件共享是一個重要方面。當前有許多網絡操作系統可供我們選擇,相對而言,選擇Linux做為網絡操作系統具有比較好的性能價格比。Linux提供的Web服務、郵件服務、數據庫服務、文件共享服務基本能夠勝任大多數單位的應用需求。本文主要闡述如何利用Linux的Samba服務模擬NT域實現局域網的文件資源共享。

Samba是一個與WindowsNT具有相同協議的軟件包。我們可以利用Samba服務來模擬Windows NT域,使用戶從Windows計算機上直接使用一台Linux服務器上的文件和打印機。當你正確安裝了Samba軟件包後,接下來的工作是正確配置Samba,Samba服務的配置都在/etc/smb.conf中完成。

給Samba一個合適的域名

在Smb.conf文件[Global]一節中,Workgroup項實際上相當於WindowsNT的域名,它的默認設置是Mygroup,我們可以根據單位名稱、個人愛好給它一個名字,如Sambaserver。

設置允許Windows工作站登錄

同樣,在Smb.conf文件[Global]一節中,Domain logons項設置為Yes,表示Samba服務允許Windows用戶登錄。

用戶鑒別設置

經過以上兩步設置後,在Windows95老版本或Lan manager for DOS中,按Linux合法用戶登錄,就能夠順利地登錄到Samba服務器。可是,在Windows98中,你會發現,總是出現一個類似口令不正確的提示,這是什麼原因呢?原來Samba服務口令識別默認的設置是普通文本,而Windows 98和帶有SP3以上的Windows NT 4.0、windows 2000都是使用加密口令。如何解決這個問題呢?可用以下三種方法。如表1 :

項名稱     涵義            可能的值

comment     共享名注釋

public     該共享資源是否公共許可   yes no

writeable    可以進行寫操作       yes no

valid users   允許的用戶,多個用戶時,  mary;joke;hxw          中間用分號隔開

allow hosts   允許的客戶機,多個時,中  hxw;moli;liping或

         間用分號隔開,可以用ip地  11,103,41.*;11.103.42.88          址表示

create mask   文件目錄建立的強制掩碼 1.強制客戶端以明文口令登錄

該方法采用修改Windows系統的注冊表關閉口令,加密登錄時,以明文傳送口令。在注冊表HKEY_LOCAL_MACHINE\System\Current-ControlSet\Services\VxD\VNETSETUP中,添加一項EnablePlainTextPassWord,值為1(DWORD)。然後,重新啟動Windows系統。

2.讓Samba使用加密口令

第一種解決辦法可行但不實用,如果單位工作站太多,對系統管理員來說,顯然是件麻煩的事情。事實上,現在流行的Linux的Samba版本都能夠識別加密口令,只不過Samba默認的口令識別是普通文本。要使Samba能夠識別加密口令,需要做如下幾項工作。更改[Global]一節中的Encrypt password項為Yes,Smb passwdfile項指向一個你建立的Samba密碼文本,默認的文本是/etc/smbpasswd。接下來,用Cat/etc/passwdmksmbpasswd.sh>/etc/。如表2:

宏     涵 義

%u     根據要求共享的用戶名提供共享資源

%g     根據要求共享的用戶所屬組提供共享資源

%m     根據要求共享的機器名提供共享資源




smbpasswd的方法建立一個初始的Samba密碼文本。然後,為所有Samba用戶建立一個Samba密碼口令,如要為Abc用戶建立口令,只需鍵入Smbpasswd abc。 通過這種辦法,你可以完全像登錄WindowsNT一樣使用Linux上的文件資源,客戶端不再需要做額外的工作。

3.尋求第三方用戶認證

如果在局域網中有一個NT服務器,Samba可以通過NT域的認證許可為客戶端提供文件服務。也就是說,只要是NT域的合法用戶,就可以訪問Samba上的許可共享資源。具體配置方法為:把[Global]一節中Security項設置為Server(Samba默認的是User),Password Server項指向NT服務器名字,建議使用IP地址。如Password Server=11.103.41.12。這種辦法簡捷,但在Samba共享資源設置上需進行更多的安全設置。因為在Samba服務下的公共許可的資源,只要是NT域的合法用戶,不管是否是Linux用戶,都能訪問到該資源。

設置Samba共享資源

在Samba服務中,共享資源的設置要比Windows NT靈活得多,它除了能像Windows NT一樣進行用戶和工作站許可設置外,Samba還提供一種宏的功能,能夠根據請求共享的機器和用戶的情況,動態地分配不同的共享資源,也就是說,使用同一個共享名,不同的用戶組、用戶或不同的客戶機,會獲得不同的共享資源。設置的具體方法是:在Smb.conf中加入一小節,小節名為共享名,在小節中,Path項是必不可少的,它用來表示該共享名映射到Linux服務器上的哪個目錄。如:

[myshare] path = /home/samba Myshare是供客戶機共享的共享名,/home/samba是該共享資源在服務器上的目錄。 在共享小節中,可以加入表1中的一些常用的控制項。在Path項中,可以充分利用Samba提供的宏功能,常用的宏見表2。如下面的Usershare共享資源,就是根據不同用戶映射到其相應的用戶目錄:

[usershare] comment=不同用戶共享資源 path=/home/%u public=yes writeable=yes printable=no

在設置共享資源中,要注意的一個問題就是,如果有Lan manager for DOS工作站,在共享名中不要用$符號(這在NT域共享名中是常用的),因為在Lan manager for DOS工作站要映射一個Samba具有$符號的共享名時,會出現DOS擴展錯誤。同樣,要在Linux中利用Smbmount、Smclient來引用一個NT域具有$符號的共享名時也會出現錯誤。另外要注意的是,Samba是建立在Linux上的一項服務,Linux文件系統的權限優先於Samba。比如說,如果Samba允許對一個目錄寫操作,但Linux不允許,那麼客戶端還是不能寫操作。所以,設置了一個可寫的共享卻不能進行寫操作時,首先應當考慮Linux文件系統是否是寫許可。

重新啟動Samba服務

每次對Smb.conf做過修改、刪除、增加操作,你都必須重新啟動Samba服務,才能使你的改動生效。方法是:/etc/rc.d/init.d/smb restart。

通過以上五步驟,就可建起一個Linux上的“NT域”。經過長期使用後,筆者感覺它的穩定性、安全性都相當不錯。當你想建一個文件服務器時,不妨把Samba納入你的選擇范圍。



在設置共享資源中,要注意的一個問題就是,如果有Lan manager for DOS工作站,在共享名中不要用$符號(這在NT域共享名中是常用的),因為在Lan manager for DOS工作站要映射一個Samba具有$符號的共享名時,會出現DOS擴展錯誤。同樣,要在Linux中利用Smbmount、Smclient來引用一個NT域具有$符號的共享名時也會出現錯誤。另外要注意的是,Samba是建立在Linux上的一項服務,Linux文件系統的權限優先於Samba。比如說,如果Samba允許對一個目錄寫操作,但Linux不允許,那麼客戶端還是不能寫操作。所以,設置了一個可寫的共享卻不能進行寫操作時,首先應當考慮Linux文件系統是否是寫許可。

重新啟動Samba服務

每次對Smb.conf做過修改、刪除、增加操作,你都必須重新啟動Samba服務,才能使你的改動生效。方法是:/etc/rc.d/init.d/smb restart。

通過以上五步驟,就可建起一個Linux上的“NT域”。經過長期使用後,筆者感覺它的穩定性、安全性都相當不錯。當你想建一個文件服務器時,不妨把Samba納入你的選擇范圍。



Copyright © Linux教程網 All Rights Reserved