在Windows NT的時代,微軟導入PDC/BDC網域觀念;Windows 2000之後,微軟已改推Active Directory。在這方面,在開放原始碼軟體中,也有其不錯的對應解決方案,例如:Open LDAP與Samba,因篇幅限制,本文僅討論Samba。以下將進一步介紹與分析Samba的優缺點。
Samba是又一個自由軟體界的重大貢獻。在沒有Samba之前,Windows Client端要存取Linux檔案幾乎只有靠最傳統的FTP(SCP)或是更為複雜的,這類方式操作非常麻煩,也很如同視窗系統,針對個別目錄給予不同使用者、不一樣的權限。
Samba改變了這一切,它可支援如同NT一樣的網域(在Client端Login畫面的三個選項),讓Client端的檔案總管使用一樣的網路路徑,以對應網路磁碟機,在網路芳鄰上也就可以找這台Linux Server。包括Linux、UNIX與Mac OS X幾乎都已內建整合了Samba,當然,使用者也可自行自Samba官方網站下載原始碼,再自行編譯。
Samba的問世,毫無疑問的讓Windows Client與Linux Server共用的方便性大幅提升。當然,我們最終還是希望Linux Client也能全面取代Windows。
目錄、密碼與管理
在執行效率方面,Samba已不遜色於其他同類的產品。根據美國電腦雜誌PC Magazine提出的測試報告,使用Samba的throughput可達120Mbps,而Windows 2000只有80Mbps,整整快了50%。至於反應時間,Samba只需不到2ms,而Windows 2000需要4ms,兩者之間又相差將近一倍。
Samba與Windows一樣,可以針對個別目錄設定分享權限。倘若沒有利用一些自動化工具,就必需記住一些指令,以手動編輯方式進行Samba的檔案設定。
基本上,Samba與Linux使用不同密碼,但可選擇設定一個選項,使Windows Client端在修改密碼時,得以同步修改Linux與Samba的密碼。比較困難的是,無法完全讓Linux與Samba密碼一致。如同密碼設定一樣,已經存在Linux帳號,還必須重新在Samba一個指令,再建立一次。當刪除一個Linux帳號時,在Samba中還必須再做一次。其好處是,如果讓Samba的帳號、群組與Windows同步時,即可與Windows一樣,個別的目錄可以設定對不同群組、帳號的權限。
解決網域問題
不論是Unix或是Linux系統本身並不支援微軟的網域, Samba彌補了這方面的不足。Samba提供不同選項,包括網域、個別電腦、或使用者等方式,也可指定別台伺服器作為密碼認證的控制台。因為有5、6個不同的選項可設定,若使用得當,定可創造出比Windows環境更具備彈性的管理系統。唯一挑戰管理人員的是,必須記憶5、6組指令與手動編輯檔案才有辦法完成。
開放原始碼的好處
從Windows轉換至Linux平台最大的好處,在於可以任意組合、使用各種開放原始碼軟體。先前,我曾受一家客戶之託,重新Compile Samba。當我在Windows Client端利用「控制台」修改密碼時,就能同時修改控制台與Linux作業系統內的密碼,同時可將這套新密碼儲存至資料庫中,以便管理員管理,而使用者完全渾然不覺。
另外一個經驗是,我們曾在在Mac OS X中使用Samba,發現原本的密碼同步功能出了問題,了解問題之後,我們馬上自行修改Samba程式碼,以修正該筆錯誤,這些都是在Windows環境中不可能完成的任務。
不可諱言,不論是Samba或是Open LDAP都不是容易設定的開放原始碼軟體。如Samba內的設定至少有數百項以上。對玩家而言,或許遠較Windows更具彈性且功能強大,因為開放原始碼,如果想增加一些特殊功能,都能自己改寫。不過,對一般企業而言,真正需要的是一個現成好上手的工具,而不是摳破頭皮,還是不容易操作的軟體。為解決這類問題,目前已有不少好的管理工具面世,例如:Samba內建的管理工具「SWAT」,可以設定選項,但無法像Windows般直接點選設定目錄權限。另外還有Webmin、smbconftool(一個用Java撰寫、可管理目錄與權限的工具)、GSMB(管理Samba密碼),以及KDE及GNOME這兩個自由軟體中最有名的桌面環境管理工具,都能妥善管理Samba的目錄與權限。
轉換挑戰與解決方案
在轉換的過程中,難以避免遭遇困難,其中,密碼是最令人頭痛的地方。如果是人數少的公司,管理員可直接請每個人重新鍵入新密碼即可;但若是數百人以上的大型公司,那可就頭痛了。請每個人至MIS報到,再自行鍵入密碼?或是發給每個人由MIS指定一組新密碼?不管是哪個方法,似乎都會花費冗長時間,更不能輕忽的是,可能出現安全控管的空窗期。
共享目錄權限管理是另一個轉換的瓶頸。假使企業內部的共享目錄有數千個,每個目錄上又建了幾十個,甚至幾百個可以讀、寫的帳號與群組,全部的總合變成一件悲慘的工作-必須在Samba之上重新鍵入幾萬個至幾十萬個字。不僅鍵入耗時,可能因為手動而發生的錯誤,更是潛在的危機。同理可證,當眼前有數百到幾千個目錄,內含幾G到幾百GB的資料,必須從Windows複製至Linux或其他平台之上,更是一個消耗人力與時間的大工程。
至此,讀者千萬不要誤會我已陣前倒戈、放棄轉換任務。只是不得不提示,從Windows轉換至開放的環境中所必經的一些陣痛。以我服務的公司為例,記得4年前還未改用Linux時,伺服器幾乎每星期都要重新開機一次以上,現在已超過一年沒重新開機。不過,在轉換的過程中確實也碰到前述那些陣痛,因而激發我們開發LSP的決心,將那些漫長而又可能導致錯誤的手動過程儘量的自動化。
在轉換實作方面,除了人工手動的一筆一筆建立之外,也可以考慮自行寫程式將這些步驟自動化,這個方式在Samba端比較容易解決,因為Samba的設定檔是一個公開的文字檔,但在Windows那一端的格式就比較難解。當然,也可以選擇導入工具,如LSP,即能自動複製使用者、群組、帳號至Linux上。
各位一定要有心裡準備,轉換工作確實不易。但只要經過這些陣痛之後,擁抱Linux將會是非常快樂的事情。

