4.4. 從Samba 2.0.x向2.2.x遷移
在Samba 2.2中,打印機驅動程序的管理已經與以前的版本有所改變(我們希望有所改進),從你現有版本向2.2遷移可能會遇到象下面這樣的問題。
一般說來,Windows系統具有一定的記憶功能。如果Windows NT客戶端已連接過Samba 2.0服務器的話,它會記住這是一台LanMan打印服務器。而Samba2.2版本會盡可能支持MSRPC打印,當你升級以後,NT客戶還是記住以前的設置。
要使用全新的MSRPC打印功能,先用下面的命令停掉客戶端的假脫機服務,再刪除[HKLM\SYSTEM\CurrentControlSet\Control\Print]中與打印服務器有關的注冊鍵。
C:\WINNT\> net stop spooler
請小心操作注冊表。
當刪除了相應的注冊表項之後,請用start替換掉剛才命令中的stop來重啟假脫機服務。
另一方面,Windows 9x使用LanMan打印調用,無須進行任何修改操作。
警告
我們將考慮把以下的smb.conf選項作廢掉,所以請不要在新的安裝中再使用了。
printer driver file (G)
printer driver (S)
printer driver location (S)
在遷移過程中,你可能會面臨如下的方案:
無須支持Windows NT打印機驅動程序,則只要使用現有的選項就可以了。
如果要支持NT打印機驅動程序,但卻不想把9x驅動程序遷移到新服務器上,那麼請保留現有的printers.def文件。當smbd在TDB中查找打印機的9x版驅動程序失敗時,就會使用printers.def文件(及所有相關的選項)。make_printerdef工具仍會保持向後兼容,不過已經這屬於那種老掉牙的工具了。
如果在Samba服務器上安裝了打印機的Windows 9x版驅動程序,那麼這套程序的優先級最高,上面那三個舊的打印選項將被忽略(包括printer driver location)。
如果要把現有的printers.def文件遷移到新服務器上,那麼只能用Windows NT的APW來安裝NT及9x驅動程序了。詳情請參見smbclient和rpcclient的用法。另外在http://imprints.sourceforge.net/有Imprints客戶端安裝程序的示例。
--------------------------------------------------------------------------------
Chapter 5. Samba 2.x中的security = domain選項
5.1. 把Samba 2.2添加到NT域
要把Samba服務器添加到NT域中,必須在PDC的域服務器管理器中加入它的NetBIOS主機名,這樣就在PDC的域SAM中加入了它的機器賬號。要注意的是,在添加時要把Samba服務器作為一台“Windows NT工作站或服務器”,而不是“主或備份域控制器”。
假定你要把一台名為SERV1的Samba服務器加入到NT域DOM中,而該域的主域控制器及兩個備份域控制器分別名為DOMPDC、DOMBDC1和DOMBDC2。那麼首先停掉所有的Samba後台進程,再運行以下命令:
root# smbpasswd -j DOM -r DOMPDC
如果運行順利,則會得到以下信息:
smbpasswd: Joined domain DOM.
smbpasswd(8)的用法請參見其手冊頁。
在以後的發布版中,加入域時就無須事先在PDC上創建機器信任賬號了。
通過上面這條命令,Samba服務器使用機器賬號口令更改協議,把它的機器賬號口令寫到了一個文件中,並保存在存放smbpasswd文件的目錄中,通常應該是:
/usr/local/samba/private
在Samba 2.0.x中,這個機器賬號口令文件的名稱形如:
..mac
.mac後綴代表這是一個機器賬號口令文件。因此,根據上面的例子,這個口令文件應該名為:
DOM.SERV1.mac
而在Samba 2.2中,該文件已被TDB(Trivial Database)文件secrets.tdb所取代。只有root賬號才擁有該文件,其它人皆不可讀。它是系統采用域安全級時的關鍵所在,請仔細維護。
現在,還得編輯smb.conf(5)文件,以便使用域安全級。
在[global]段中修改(或添加)security =選項為:
security = domain
同時再修改workgroup =:
workgroup = DOM
它應該是待加入的域名。
另外還須設置encrypt passWords選項為yes,以便使用加密口令。
最後,添加(或修改)[global]段中的password server =選項指定口令驗證服務器:
password server = DOMPDC DOMBDC1 DOMBDC2
Samba在進行用戶驗證時,會依次使用這些主域和備份域控制器,所以如果要分散驗證任務器的負載,可以根據需要改變這個列表的次序。
或者,用如下設置,這樣smbd會在進行驗證時自動檢測域控制器:
password server = *
注:其實,在Samba 2.0.6中就已經有了這種同NT一樣的工作機制。它使用廣播或查詢WINS數據庫的方式來查找進行驗證的域控制器。
最後,請重啟Samba後台進程,客戶就可以使用域安全級了。
--------------------------------------------------------------------------------
5.2. Samba和windows 2000域
很多人一直關心Samba與Windows 2000域的工作情況。現在,在混合模式或本地模式的Windows 2000域中,Samba 2.2已經可以作為其中的成員服務器了。
在上述的兩種模式之間有很多令人混淆的地方。只有Windows NT備份域控制必須要處於相同域中時,才需要讓Win2k域控制器以“混合模式”來運行。而缺省情況下,處於“本地”模式的Win2k域控制器仍支持常規客戶端的NetBIOS和NTLMv1驗證協議,這些客戶端是:Windows 9x和NT 4.0。而Samba服務器的工作方式與Windows NT 4.0成員服務器類似。
把Samba 2.2添加到Win2k域的步驟與向Windows NT 4.0域中添加Samba服務器幾乎是相同的。只是,NT 4的“服務器管理器”現在被換成了Win2k的“活動目錄用戶及計算機”。
--------------------------------------------------------------------------------
5.3. 為什麼比security = server選項更好?
現在,要使用Samba的域安全級,還是需要建立本地UNIX用戶賬號來代表連接服務器的那些域用戶。也就是說,如果域用戶DOM\fred 要連到你的域安全級Samba服務器,則在UNIX系統上需要一個本地賬號fred來與之對應。這和以前的security = server安全模式很相似,在那種舊模式中,Samba服務器使用與Windows 95或Windows 98相同的方法把驗證請求發往NT服務器。
Winbind paper中提到了關於為Windows NT域用戶自動分配UNIX的uid和gid的內容。這種功能現在只有開發分支中才有,不過不久就會加入到發布版中的。
Samba服務器采用域安全級的好處在於,它可以象NT服務器一樣來使用RPC通道傳遞驗證。也就是說,它可以象NT服務器那樣參與域信任關系(例如,可以把Samba服務器加到資源域中,然後通過該域的控制器把驗證傳遞到賬號域中的域控制器上去)。
另外,如果使用security = server的話,服務器上的每一個Samba進程都會在運行時保持對驗證服務器的連接,這樣就可能耗盡NT服務器的連接資源。而使用security = domain的話,Samba進程只在用戶進行驗證時才連接到PDC/BDC,完成之後就斷開,因此節省了服務器的連接資源。
最後,使用與NT服務器一樣的方式向PDC進行驗證,可以使Samba服務器獲得用戶的鑒別信息,象用戶的SID及其所屬的NT組列表等等。在未來的版本中,Samba會這些信息來擴展一些功能,開發者把它稱為“appliance”模式。在這種模式中,Samba將從PDC返回的用戶驗證信息中產生相應的UNIX的uid和gid,而無須再手工建立本地用戶賬號了,這樣的話,在NT域環境中,Samba服務器真的可以算是即插即用了。請在將來的代碼中留意該功能。
注意:本文中很多文字引用了LinuxWorld的文章Doing the NIS/NT Samba。
--------------------------------------------------------------------------------
Chapter 6. 把Samba 2.2配置成主域控制器
6.1. 說明
注意,作者提示:本文是David Bannon的Samba 2.2 PDC HOWTO和Samba NT Domain FAQ的結合。
Samba 2.2之前的版本已實現了少量的Windows NT 4.0主域控制器功能。而2.2版還完成了下面這些功能:
Windows NT 4.0/2000客戶進行域登錄
在用戶安全級中加入Windows 9x客戶
從Samba主域控制器中接收Windows客戶的用戶及組列表
漫游用戶設置
Windows NT 4.0風格的系統策略
但還有這些功能沒有實現:
Windows NT 4域信任
Windows NT 4.0域控制器的安全賬號數據庫復制(如,Samba主域控制器與NT備份域控制器進行復制,或反之)
通過用戶管理器向域中添加用戶賬號
實現Windows 2000域控制器功能(如Kerberos和活動目錄)
請注意,在本文所描述的Windows 9x客戶並不是域中的真正成員。因此,支持Windows 9x域登錄風格的協議與NT4域登錄是完全不同的,而且這個功能早就被正式支持了。
從Samba 2.2.0開始,正式支持了NT4風格的域登錄,適用於Windows NT 4.0和Windows 2000 (包括SP1)客戶。本文描述了把Samba配置成PDC所必須的步驟。開始之前請先確保它正常工作,否則請參考UNIX_INSTALL.Html以及smb.conf(5)的手冊頁。
具體
在用戶安全級中加入Windows 9x客戶
從Samba主域控制器中接收Windows客戶的用戶及組列表
漫游用戶設置
Windows NT 4.0風格的系統策略
但還有這些功能沒有實現:
Windows NT 4域信任
Windows NT 4.0域控制器的安全賬號數據庫復制(如,Samba主域控制器與NT備份域控制器進行復制,或反之)
通過用戶管理器向域中添加用戶賬號
實現Windows 2000域控制器功能(如Kerberos和活動目錄)
請注意,在本文所描述的Windows 9x客戶並不是域中的真正成員。因此,支持Windows 9x域登錄風格的協議與NT4域登錄是完全不同的,而且這個功能早就被正式支持了。
從Samba 2.2.0開始,正式支持了NT4風格的域登錄,適用於Windows NT 4.0和Windows 2000 (包括SP1)客戶。本文描述了把Samba配置成PDC所必須的步驟。開始之前請先確保它正常工作,否則請參考UNIX_INSTALL.html以及smb.conf(5)的手冊頁。
具體