現在,許多單位都在建設自己的局域網以實現資源共享,其中文件共享是一個重要方面。 當前有許多網絡操作系統可供我們選擇,相對而言,選擇Linux做為網絡操作系統具有比 較好的性能價格比。Linux提供的Web服務、郵件服務、數據庫服務、文件共享服務基本 能夠勝任大多數單位的應用需求。本文主要闡述如何利用Linux的Samba服務模擬NT域實 現局域網的文件資源共享。 Samba是一個與Windows NT具有相同協議的軟件包。我們可以利用Samba服務來模擬Windows NT域,使用戶從Window 計算機上直接使用一台Linux服務器上的文件和打印機。當你正確安裝了Samba軟件包後, 接下來的工作是正確配置Samba,Samba服務的配置都在/etc/smb.conf中完成。 給Samba一個合適的域名 在Smb.conf文件[Global]一節中,Workgroup項實際上相當於Windows NT的域名,它的 默認設置是Mygroup,我們可以根據單位名稱、個人愛好給它一個名字,如Sambaserver。 設置允許Windows工作站登錄 同樣,在Smb.conf文件[Global]一節中,Domain logons項設置為Yes,表示Samba服務 允許Windows用戶登錄。 用戶鑒別設置 經過以上兩步設置後,在Windows 95老版本或Lan manager for DOS中,按Linux合法用戶 登錄,就能夠順利地登錄到Samba服務器。可是,在Windows 98中,你會發現,總是出現一 個類似口令不正確的提示,這是什麼原因呢?原來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_MACHINESystemCurrent-ControlSetServicesVxDVNETSETUP中,添加 一項EnablePlainTextPassWord,值為1(DWORD)。然後,重新啟動Windows系統。 2.讓Samba使用加密口令 第一種解決辦法可行但不實用,如果單位工作站太多,對系統管理員來說,顯然是件麻煩? 事情。事實上,現在流行的Linux的Samba版本都能夠識別加密口令,只不過Samba默認的 口令識別是普通文本。要使Samba能夠識別加密口令,需要做如下幾項工作。更改[Global ]一節中的Encrypt password項為Yes,Smb passwd file項指向一個你建立的Samba密碼 文本,默認的文本是/etc/smbpasswd。接下來,用Cat/etc/passwdmksmbpasswd.sh>/etc/ 表2 宏 涵 義 %u 根據要求共享的用戶名提供共享資源 %g 根據要求共享的用戶所屬組提供共享資源 %m 根據要求共享的機器名提供共享資源 smbpasswd的方法建立一個初始的Samba密碼文本。然後,為所有Samba用戶建立一個Samba 密碼口令,如要為Abc用戶建立口令,只需鍵入Smbpasswd abc。 通過這種辦法,你可以完全像登錄Windows NT一樣使用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納入你的選擇范圍。