為了使samba-2服務器加入到一個NT域中,你必須先使用域中PDC上的服務器管理器把samba服務器的NetBIOS名加入到NT域中,並在主域控制器上的安全賬號管理器數據庫中創建這個機器的賬號。注意你應該把samba服務器作為"Windows
NT工作站或服務器"加入到域,而不是一個主域或備份域控制器。
假定你有一個NetBIOS名是SERV1的samba-2服務器,並要加入名為DOM的NT域,域中有一個NetBIOS名為DOMPDC的主域控制器和兩個NetBIOS名為DOMBDC1及DOMBDC2的備份域控制器。
為了加入這個域,首先要停止所有的samba守護程序並運行命令︰
smbpasswd -j DOM -r
把域DOM和域的主域控制器(對域的SAM數據庫有寫權限的機器)作參數來使samba服務器加入DOM域。如果順利你將在終端窗口中看到這樣的信息︰
smbpasswd: Joined domain DOM.
參見smbpasswd可以得到更多的詳細信息。
這個命令通過機器賬號改變協議,然後把一個新的(隨機的)samba服務器機器賬號寫入與存放smbpasswd文件相同目錄(通常是︰/usr/local/samba/private)下的一個文件中。
文件名看起來象這樣︰
.mac後綴代表機器賬號口令文件。所以在以上的例子中,文件名應該是︰
DOM.SERV1.mac
此文件由root建立並擁有,而其它用戶不可讀。對你系統采用的domain-level安全級來說是個關鍵,應該象影子口令文件一樣仔細對待。
好了,在重啟samba守護程序之前你必須編輯smb.conf文件以通知samba使用域安全級。
修改或者加入smb.conf文件中[global]段的"security ="行︰security = domain
然後修改[global]段的"workgroup ="行︰workgroup = DOM 標出我們要加入的域的名稱。
你也必須在參數"encrypt passwords"中設定"yes"以便用戶可以在NT主域控制器上進行認證。
最後加入或修改[global]段的"password server ="行︰password server = DOMPDC DOMBDC1
DOMBDC2
這些參數是samba為了用戶認證而嘗試聯系的主或者備份域控制器。samba將試著按次序聯系每個服務器,所以你可以按次序重新排列這個列表以便在這些域控制器之間均衡認證工作的負載。
如果你想讓smbd自動檢測域控制器的列表以便進行用戶認證,可以設置這樣的可選項︰
password server = *
這個在samba 2.0.6及以上版本出現的方法,允許samba采用與NT同樣精確的方式,用廣播或者使用WINS數據庫來查找域控制器作反向驗證。
最後,重啟你的samba守護程序並準備好客戶以域安全級來使用!
為什麼域安全級比服務器安全級更好?
通常,在samba中采用域安全級對你來說並不是件輕松的事兒,你必須建立了本地unix用戶來訪問你的服務器。這意味著如果域用戶DOMfred訪問你采用域安全級的samba服務器時,需要成為一個能訪問unix文件系統的本地unix用戶。這個情況和先前的samba安全模式"security=server"非常相似,samba能在NT服務器上通過認證請求,同樣也可以作為windows
95和windows 98的服務器。
域安全級的優勢在于通過此級的認證是在已得到認證的RPC通道上繼承而來的,而NT服務器就是以這樣同樣精確的方法來操作的。這意味著samba服務器可以NT服務器同樣精確的方法參與域委托關系(例如,你可以把samba服務器加入到資源域中並能在一個資源域PDC上通過認證從而取得域PDC中的賬號)。
另外,使用"security=server"參數的每個samba守護程序可以保持聯接已開放認證服務的服務器,只要守護程序支持。這樣做會耗盡NT服務器上的聯接資源並導致可聯接資源被用完。而使用"security
=domain",samba守護程序只保持向PDC/BDC認證用戶時必需的聯接,然後結束這個聯接,因而保存了PDC的聯接資源。
最後,通過用與NT服務器認證相同的風格來運作而得到的認證回復部分,samba服務器可以獲得象用戶SID這樣的證明信息及用戶所屬的NT組列表等等。所有這些信息將使samba可以在未來被擴展到開發者們通常稱為工具的模式。在這樣的模式中,不需要本地unix用戶,並且當用戶認證時samba將以PDC傳回的信息來產生unix用戶賬號和組賬號,使samba服務器真正在NT域環境中做到即插即用。請關注這樣的代碼信息。

