http://www.hmes.kh.edu.tw/~jona/redhat/samba/w2k2samba/w2k2samba.htm
讓Win2kpro/svr/xp-pro 登入Samba網域
一、工作需求
筆者學校的電腦有安裝還原軟體以保護硬碟,每次電腦重新開機後,硬碟上的設定值均會恢復到安裝的狀態。幾年來,我們一直將Windows 98 設定成多使用者狀態,並以 Client for Microsoft Networks 用戶端的方式加入Samba 網域,使得使用者可以在登入 Samba 網域的同一時間取得多種網路磁碟機:
1.個人私有磁碟: | 裡面有個人私有的文件資料 個人網頁 成績處理系統。而個人的桌面設定值,以及 OutlookExpress 裡的所有郵件都可以從伺服器上拿下來,等結束工作時,再將這些資料傳回伺服器自己的家目錄中。 |
2.公用磁碟: | 裡面放著沒有版權問題的各種軟體與文件供所有同仁使用。 |
3.行政磁碟: | 每一位行政同仁都擁有自己專屬的空間。 |
以上的使用環境是使用者登入 Samba網域後就擁有的,而不是手動連接網路磁碟機來的。這樣做的最大好處是:對不熟悉電腦運作的同仁來說相當方便,不必再找人來設網路磁碟機。看似平凡無奇,但幾年的使用經驗感覺相當方便。
用過 Windows 2000 Professional 與 Windows XP Professional 的人應該知道,在進入Windows 前只要輸入帳號與密碼就可以了,並沒有網域的選項,當然無法登入 Samba網域,繼續使用前述方便的環境。在這樣環境下的電腦,依個人看來,只適合給單人用,不適合作為多人使用的公用電腦。其缺點有:1.每次用電腦均須尋找網路磁碟機。2.個人設定值無法保留,尤其以E-mail 不能上傳回伺服器最為不方便。雖然可以使用 Webmail 代替 OutlookExpress,但在評估其方便性與效能後,決定還是繼續採用 Outlook Express。
基於節省經費與使用方便的二種理由,我在學校採購新電腦時均要求廠商附贈 Windows 98。今年(2002年),我嗅到Windows 98 已經走到盡頭了,必須開始認真尋找替代 Windows 98 的解決方案。根據閱讀過的文獻顯示:WindowsXP Home Edition 是無法登入網域的,Windows 2000 Professional 與 Windows XPProfessional 則可以登入網域的。
首先,上狼主的網路實驗室查看看有沒有相關資訊,最後查到顏國雄老師有分享相關 Win2000 登入網域的經驗,但我天資駑鈍,從中吸收有限。於是,決定從原文著手,經多次閱讀、揣摩與實驗而整理出作業程序來。期間曾不小心動了 smb.conf profiles 的參數而未改回來,導致加入網域成功,重新開機後卻無法登入的狀況,幸經張宏明老師(jang )協助除錯,得以竟其功。此筆記主要是方便自己查閱用的,也歡迎同好在不進行商業行為下取用。
二、環境概述
WindowsProfessional + RedHat 8.0 + Samba 2.2.7 (編碼傳送密碼) Windows 2000 Server(standalone) 和 XP Professional 的處理方式也大同小異 |
三、實作
Windows 2000 工作站加入 Samba 網域的做法是:在 Samba 上開一個該 Windows2000 工作站機器名稱的帳號,以進行兩部伺服器間的信任關係,接著就可以從 Windows 2000 登入 Samba 網域了。
3.1 在 Samba 上建立工作站的機器帳號
在 Samba 建立機器帳號的方法有二:1.手動建立 Windows 2000 工作站的機器帳號與密碼。2.當Windows 2000 工作站要加入 Samba 時才建立機器帳號。
3.1.1 手動建立 Windows 2000工作站的機器帳號與密碼
假設主機名稱為 W2KTEST,其在 Samba 所在 Unix like 上的機器帳號應為 w2ktest$,密碼則為小寫的 w2ktest。
依據 samba 的文獻,只要在 Samba 的密碼檔上開機器帳號就可以了。但實做時還是要先在 Linux 上開機器帳號才好。
下列指令是幫機器名稱為 w2ktest 的 Windows 2000 工作站開名為 w2ktest$ 的Linux 系統帳號。
vi /etc/group 增加一個群組,名稱為 machines,gid 為 100 /usr/sbin/useradd -g 100 -d /dev/null -c w2ktest -m -s /bin/falsew2ktest$ |
指令說明:
/usr/sbin/useradd:建立新帳號的指令與路徑
-g 100:該帳號所屬群組的 id 是 100
-d /dev/null:該機器帳號不建立家目錄
-c w2ktest:這是註解
-m:通常在開新帳號時,系統會順便幫該帳號建立家目錄,並把 /etc/skel 下所有的檔案複製過來。 -m 參數可關閉上述二個動作。
-s /bin/false:此帳號亦不使用 shell
w2ktest$:帳號名稱
有了系統帳號,接下來才能在 Samba 上開機器帳號。
smbpasswd -a -m w2ktest$ |
注意:根據 Samba 的文件,這個地方的機器帳號是 w2ktest 主機的 NetBIOS name(通常還是w2ktest,必須用小寫)。
而其密碼則為小寫的機器帳號(還是 w2ktest)。
3.1.2 即時建立機器帳號(沒有測試)
如果您覺得手動建立機器帳號太麻煩,可以試試Windows 2000 工作站加入 Samba 時順便建立機器帳號,其作法很簡單:
在 /etc/samba/smb.conf 組態檔中加入下面這一列參數:
add user script = /usr/sbin/useradd -d /dev/null-g 100 -s /bin/false -M %u |
編輯 /etc/group,加入一個群組 machines ,gid 為 100 。
重新啟動 samba 服務: /etc/rc.d/init.d/smb restart
然後就可以從 Windows 2000工作站加入 Samba 網域了。
3.2 Win2000 Series 上的設定
3.2.1 Windows 2000 professional 修改程序
預備工作: 修改 WINS 的設定
網路上的芳鄰(按右鍵) -> 區域連線(按右鍵)-> Internet Protocol(TCP/IP)
->請視情況決定靜態或動態 IP、DNS -> 進階
請選擇: 使用 DHCP 伺服器送來的 NetBIOS 設定 -> 確定
WINS 扮演的角色:
WINS Server 負責收集網域裡面所有機器名稱(NetBIOS Name) 與該機器 IP 的對照表。
當網域內的電腦開機,就會向外廣播 NetBIOS Name 與 IP ,以說明自己的存在。WINS Server就在此時取得該電腦的 NetBIOS Name 與 IP (此 IP 有可能是該機器自設的靜態 IP,也有可能是 DHCPServer 動態分配的 IP)。網域內的電腦會像這樣保持活動,傳資料,閒置時也會在固定時間內向外告知自己的存在。WINS Server就這樣一直收集機器名稱與 IP,並保留在資料庫,以提供給其他電腦查詢之用,直到確定該電腦離線,才從資料庫中刪去該電腦的機器名稱與 IP。
如果網域內的電腦想要查詢另一部電腦的機器名稱與 IP,一般會先從自己內部的 lmhosts 找看看有沒有目的電腦的NetBIOS Name 與 IP 的對照表。如果找不到,就會去問網域內的 WINS Server(如果網域內沒有 WINS,PC就開始對外廣播找尋目標 PC。盡量減少廣播封包,才可提高網路的使用效率)。如果 WINS Server 也不知道該主機的資料,表示該主機不是這個網域內的電腦。最後,就只好去問 DNS Server。
1. 我的電腦 (按右鍵) -> 內容-> 網路識別
2. 輸入想要加入的 samba 網域名稱
3. 輸入 samba 上 root 的帳號與密碼
smbpasswd root (已經在/etc/samba/smbpasswd 建過 root 的帳號密碼) smbpasswd -a root (尚未在 /etc/samba/smbpasswd 建立 root 的帳號密碼) |
特別注意!!在按下確定鍵前要記得中斷所有的網路磁碟機(對提供登入網域的伺服器)
4. 出現歡迎畫面
5. 重新開機後出現沒有登入網域的畫面,按選項,選Samba 的網域即可。
6. 現在可以像 Win98 / ME 一樣用電腦了。
此時,只要任何有在 Samba 網域開帳號,而沒有在 Windows 2000 professional開帳號的使用者都可以順利登入 Samba 網域了。
3.2.2 Windows 2000 server 修改程序
設定程序與 Windows 2000 professional 大致相同,但要注意:
1. | 要登入 Samba 網域的 Win 2000 Server 必須是 standalone(獨立伺服器)。我沒試過 Win2000 網域主控站 / 備份主控站(PDC / BDC)是否可以登入Samba 網域,也不想試。想想看:要把二個性質相同的伺服器弄成誰登入誰,太奇怪了。 |
2. | 設定成功,Win2000 server 登入 Samba 網域後,會造成無法關機。 您必須:登出 Samba 網域 -> 登入本機 -> 才可關機。想一下,很合理喲! |
1. 我的電腦(按右鍵) -> 內容 ->網路識別 -> 內容
2. 輸入想要加入的 samba 網域名稱
3. 輸入 samba 上 root 的帳號與密碼
smbpasswd root (已經在/etc/samba/smbpasswd 建過 root 的帳號密碼) smbpasswd -a root (尚未在 /etc/samba/smbpasswd 建立 root 的帳號密碼) |
特別注意!!在按下確定鍵前要記得中斷所有的網路磁碟機(對提供登入網域的伺服器)
4. 出現歡迎畫面
5. 重新開機後出現沒有登入網域的畫面,按選項,選 Samba 的網域即可。
6. 現在可以像 Win98 / ME 一樣用電腦了。
此時,只要任何有在 Samba 網域開帳號,而沒有在 Windows 2000 professional開帳號的使用者都可以順利登入 Samba 網域了。
3.2.3 Windows XP professional 修改程序
1. 修改登錄檔:執行 -> regedit,將下列機碼改為 0
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\netlogon\parameters
"RequireSignOrSeal"=dword:00000000此機碼是設定安全通道的資料進行加密或簽名,Windows 2000 的預設值為 0,XP 的預設值則為1。根據微軟的官方網頁,此機碼是當所處的信任網域均支援加密簽名通訊時才可設為 1。看來,微軟希望增加網域通訊的安全性,認為 XP 所處的信任網域都應該支援加密簽名通訊,而 Samba 尚未支援此項設定。
2. 我的電腦 (按右鍵) -> 內容-> 電腦名稱 -> 變更
3. 輸入想要加入的 samba 網域名稱
4. 輸入 samba 上 root 的帳號與密碼
smbpasswd root (已經在/etc/samba/smbpasswd 建過 root 的帳號密碼)
smbpasswd -a root (尚未在 /etc/samba/smbpasswd 建立 root 的帳號密碼)特別注意!!在按下確定鍵前要記得中斷所有的網路磁碟機(對提供登入網域的伺服器)
5. 出現歡迎畫面
6. 重新開機後出現沒有登入網域的畫面,按選項,選 Samba 的網域即可。
7. 現在可以像 Win98 / ME 一樣用電腦了。
此時,只要任何有在 Samba 網域開帳號,而沒有在 Windows XP professional開帳號的使用者都可以順利登入 Samba 網域了。
四、心得
選購 OS 的決策分析
Win2000/XP Professional 的使用時機
在學校經費夠,能取得完整版權的前提下,建議採用此方案。
優點:可以登入網域,使用者可以無痛升級,像往常一樣繼續使用網路磁碟、收發郵件、擁有個人桌面。
缺點:經費龐大、每次只能登入一個網域,想要登入其他網域還要重新設定且重新開機,幾乎不可能全面實施。
Windows XP Home 的使用方式
如果經費不夠,只能採購到 Windows XP Home,建議的使用方式:
1.降級使用 Windwos 98/ME,我不太確定是否可以這麼做,但曾採購過一批 Office XP 可降級使用 Office 2000。
2.採用 Windows XPHome,犧牲登入網域的功能,每位使用者只能以瀏覽網路來連接網路磁碟機,考慮移除硬碟還原軟體。郵件軟體改用 Netscape 家族的Messanger,它可將郵件路徑設到任何實體磁碟或網路磁碟去,這樣郵件就可以設到網路磁碟,解決郵件可攜性的問題(不論在那一台電腦工作,只要能夠將網路磁碟機連接到固定的磁碟編號即可),也可以跨Windows / Linux 平台使用。另外,Windows 下的郵件軟體FoxMail也可以放在網路磁碟機使用,V3.1版含程式及郵件只有 1.6MB,完全中文、不用安裝且支援 HTML 郵件,值得一試。
Outlook Express 有一個嚴重的缺點:無法將儲存郵件的路徑設到網路磁碟機去,其預設位置在 C: ,我個人則偏好放在D:。而 Netscape 家族的 Messanger 則可以將郵件路徑設到任何實體磁碟或網路磁碟去。我目前還未全面採用 Messanger有二個原因:其一、全校所有電腦均須重灌。其二、要對所有使用人員進行教育訓練。這二件工程都很大,只有在全校全面退出 Windows 98,改用Windows 2000/XP 時才會考慮採用。
五、參考文獻
顏國雄(91):http://netlab.kh.edu.tw/board/view.asp?messageid=3251
Samba-HOWTO-Collection.pdf。http://us1.samba.org/samba/docs/Samba-HOWTO-Collection.pdf
Correcting Samba/Windows XP conflicts。http://asia.cnet.com/itmanager/netadmin/0,39006400,39069001,00.htm
http://www.microsoft.com/windows2000/techinfo/reskit/en-us/default.asp?url=/windows2000/techinfo/reskit/en-us/regentry/55963.asp