Windows 最令人感到方便的特色莫過於『網上鄰居』的檔案分享功能,有了這項功能后,使得區域網絡里資料的傳遞與分享得以落實。以往在 Linux 的世界里其實也有 NFS 可以在 Unix Like 的操作系統下做檔案分享,但是與 Windows 作業環境的整合還是缺乏溝通的橋樑。 Samba Server 建立了 Linux 與 Windows 環境的溝通管道,也可以做為Print Server提供Windows 遠程聯機列印;若是使用 Samba Server 搭配 Apache Web Server,可在 Windows 環境下藉由『網上鄰居』登入 Linux 主機里使用者的個人帳號放置網頁目錄(當然是在區域網絡內才行),有了這項功能,編輯個人網頁就如同在本機操作一般方便。除此之外,Samba Server 也可以完全取代 NT/2000 PDC(Primary Domain Controler)成為 NT/2000 網域主控者管理 NT/2000 網域機群,當然,Samba 也可以將目錄、檔案分享給其它 Unix Like、Mac、OS/2 的機器使用,應用層面可以說是相當廣闊,更令人驚訝的是 Samba Server 也可做為WINS Server,若配合 DHCP Server 更可以管理大型 NT/2000 網域,想想!這個集合眾多優點的伺服器,是不是會對不同機種的操作系統工作環境在整合上有著極大的助益呢?
Samba 最大的功用除了做 file Server 外,還可以做 WINS Server。Wins Server最大的好處是可在 NT/2000 網域內做名稱解析,傳統上在 Internet 上做 FQDN(Full Quality Domain Name)與 IP address 之間的轉換是藉由 DNS 做解析,但在區域網絡里尤其是 NT/2000 網域,當您使用 NT/2000 的 WINS Server 與 NT/2000 的 DNS 做配搭時,假設有一台主機名稱叫做 abc,所屬領域是 test.com.tw,IP地址是192.168.0.229,目前此部主機尚未在 DNS 上註冊,但是在DNS 上激活正反查都可藉由 WINS 解析,當您使用 nslookup 查詢 abc 主機時,您會發現可解析出 192.168.0.229,並且觀察 DNS 上正查區域內,DNS自動將 abc 以A資源紀錄指定 IP 192.168.0.229,而反查區域內,DNS 自動將229.0.168.192.in-addr.arpa 指到 abc.test.com.tw,這就是 WINS 的好處。
以往在 NT/2000 網域內使用 DNS+WINS Server 可免去在 DNS 上登錄主機記錄,若再搭配 DHCP Server 那麼連 Client 端主機的 IP 也免輸入,一切由 DHCP Server分配動態 IP ,再由 DNS+WINS Server 自動登錄主機 FQDN 與 IP 解析關係,這個簡單、易用組織網域的方法,如今也可以由 DNS+Linux下的Samba+Linux下的DHCP來取代,因為 Samba 可擔任 WINS Server 或指定 WINS Server做網域名稱解析。假設目前欲做 WINS + DHCP 的 Linux主機IP為192.168.0.229,其設定方式如下:
首先確定已激活 DNS Server,並且在 DNS 里啟用正、反查皆可透過 WINS 做解析。
以下設定Samba為Wins Server
wins server = 192.168.0.229
設定完成後,可使用 nmblookup 查詢名稱解析,假設目前有一主機其名稱為 abc,使用動態分配 IP 聯機,所配得的IP地址是192.168.0.100,那麼當您使用nmblookup asp做名稱查詢時,則出現下列畫面:
[root@abc testing]# nmblookup abc
192.168.1.100 abc<00>
當然,使用 DNS + DHCP + WINS 除了可分配動態 IP 外,『網上鄰居』、區域內主機 FQDN 與 IP 的對應關係皆可正常運作。
Samba 除了可做為 File Server、Wins Server 外,還可做為 Printer Server,設定方法其為簡單:
首先使用 Redhat 的print tool,列表機類型設定使用本機列表機。
# linuxconf。
按一下「Config」、「Networking」、「Server tasks」。
按一下「Samba file server」、「Default setup for printers」。
選擇 [X] This share is enable選項,可做列印分享。
若選擇 [X] Public access選項,任何人皆可使用此部Printer Server,不限定只有擁有登入Samba帳號使用者。
若設定使用「Linux 主機的帳號與密碼做為登入 Samba Server 的帳號與密碼」時,由於 win95OSR2 之前版本及 NT SP3 之前版本的密碼機制是不加密的純文字密碼,當登入 Samba Server 時可傳送不加密的純文字密碼給 Samba,因而輕易認證登入。
而 win98 及 NT SP3之後版本及 WIn2000 的密碼機制是屬於加過密的密碼,當登入Samba Server 時所傳送的是加密的密碼給 Samba,因而無法認證登入,此時,必須為需要登入 Samba Server 的使用者帳號,利用 smbpasswd 這個工具程序建立登入Samba 的密碼,當 windows Client 端登入 Samba 時,就可接受加過密的密碼做為認證,不過此時就無需使用「Linux主機的帳號與密碼做為登入Samba Server的帳號與密碼」,因為已經為使用者建立屬於登入 Samba 的密碼。必須注意的是:登入Samba 的使用者帳號必須是已存在於 /etc/passwd 文件內的Linux系統帳號,唯有如此,才能確保能使用個人帳號目錄。
不加密的聯機
由於 Samba 內定的接受密碼機制屬於純文字密碼,當設定好Samba Server 端后,此時若Client 端是 Windows 95 OSR2之前的版本或是 Win NT SP3 之前的版本,在登入本機時(假設使用 abc 帳號),直接使用『網上鄰居』即可看「home」、「abc」、「works」三個分享目錄,這是因為 Client 傳送純文字密碼到Server端做為認證。
若 Client 端是 Windows 95 OSR2以後的版本或是Win NT SP3以後或是 Win2000 的版本,因為 Client 傳送加密碼到 Samba Server 端做為認證,則需設定為純文字密碼才可以與 Samba Server 聯機。您必須使用『登入記錄編輯器』(regedit)對聯機密碼形式做設定: