以 Samba 作為 M$Win2000 的 domain controler
1. 甚麼是 SAMBA ?
Samba 是 UN*X, Linux 或類似 OS 的程式套件,可提供 Microsoft LanManager 兼容伺服器的功能。有了 Samba,就可以利用Linux 系統在 M$Win網絡上存取目錄和印表機。此外您亦可以模擬 WinNT 或 2000 工作站, Linux 電腦也可以如 Microsoft PDC 伺服器 (Primary Domain Controller)一樣運作。
2. 需求
您需要以下的套件在 Samba 上建立一台 PDC:
Samba TNG 2.6 (下一代):這套件在 http://www.sambahq.de。
我們需要一些套件才可以從源程式碼建立程式,一台已在網絡上運作中的 Linux 系統,以及在編譯源程式碼時需要咖啡和耐性。
3. 安裝 Samba
您要先下載最新的 Samba TNG 版本,例如下載至 /usr/src/
目錄,並利用以下指令將它解壓:
tar xvfz samba-tng-alpha.2.6.tar.gz
或
tar xvfl samba-tng-alph a.2.6.tar.gz2
現在已有目錄和源程式碼,在 /source 子目錄中執行指令:
>> ./configure
--prefix=/samba-tng <-- Installations path
--exexc-prefix=/ <-- From where you want to execute samba
--includedir=/usr/local/include <-- there the include
files will be installed
--libdir=/usr/lib/samba-tng <-- Library path
--localstateedir=/var/samba-tng
--mandir=/usr/share/man <-- path to the manuals
--with-sambaconfdir=/etc <-- path to the configuration file
--with-lockdir=/var/lock/samba-tng
--with-swatdir=/usr/local/swat <-- path to SWAT
如果您不輸入選項, Samba TNG 會嘗試自動為您的系統作設定。
接著輸入
>> make
和
>> make install
Samba TNG 就安裝好了。
4. 設定 Samba TNG
可惜不是所有目錄已建立,您需要自行建立一些重要的目錄。
>> mkdir /samba-tng
>> mkdir /samba-tng/netlogon
>> mkdir /samba-tng/private
>> mkdir /samba-tng/profile
>> mkdir /samba-tng/public
>> touch /samba-tng/private/smbpasswd
>> touch /samba-tng/private/domaingroup.map
>> touch /samba-tng/private/domainuser.map
>> mkdir /var/lock/samba-tng
每個使用者都需要將其設定檔 (profile)儲存在伺服器上,因此您需要更改權限。
>> chmod 1777 /samba/profile
在 examples 目錄您會找到 smb.conf.default 檔案,您應該將這檔案複製至 /etc
。
>> cp /usr/src/samba-tng-alpha-2.6/examples/smb.cond.default \
/etc/smb.conf
差不多所有工作已完成了,但只是「差不多」完成而已。
在下一步驟,您需要按自己的需要修改設定檔案 (/etc/smb.conf )。
/etc/smb.conf |
|
完成所有設定後,您可以利用以下指令檢查設定檔案:
testparm
如果您新增了:
Admin = "Domain Admins"
在 /samba/private/domaingroup.map 檔案中,所有屬於 admin 群組的使用者全都是管理者。
您還要在 /samba/netlogon 目錄下為相對使用者寫 logon script (例如 smith = smith.bat ,如此類推)。
5. 在啟動過程中自動啟動 Samba 伺服器
成功編譯程式後,/usr/src/samba-tng-alpha-2.6/source/script
目錄內便會有 samba-init.d 檔案,您應該將這檔案複製至 /etc/rc.d/samba-tng
。
>> cp /usr/src/samba-tng-2.6/source/script/samba-init.d \
/etc/rc.d/samba-tng
此外 init scripts 亦要更改。
>> ln -snf /etc/rc.d/samba-tng /etc/rc.d/rc2.d/S50samba-tng
>> ln -snf /etc/rc.d/samba-tng /etc/rc.d/rc2.d/K50samba-tng
>> ln -snf /etc/rc.d/samba-tng /etc/rc.d/rc3.d/S50samba-tng
>> ln -snf /etc/rc.d/samba-tng /etc/rc.d/rc3.d/K50samba-tng
6. 啟動 Samba 伺服器
您可以透過以下指令,手動啟動 samba 伺服器:
>> /etc/rc.d/samba-tng start
現在 samba 伺服器應已啟動。
您可以輸入以下指令進行測試:
>> ps -ax | grep smbd
輸出結果應會類似如下:
1286 ? S 0:00 smdb -D
6480 tty1 S 0:00 grep smbd
否則應該再次重新啟動 samba (只是這一次,因為 Samba TNG 仍然在開發中)。
7. 管理使用者帳戶
使用者的管理由 samedit負責。
首要的是:以 samedit 新增的每個使用者都先要成為該 Linux 系統的使用者。
使用者要在電腦上有帳戶,這是很重要的,包括他想要宣佈為伺服器的電腦名稱。
這個電腦帳戶可以與系統整合如下:
如果電腦名稱為 WKS01 (工作站 #1),指令應如下:
>> useradd -s /bin/false WKS01$注意:
電腦名稱不應以數字為首﹗
$ 會告訴 UN*X 您建立一個電腦帳戶。
現在我們看看 samedit,例如您可以透過以下指令來執行它:
>> samedit -S . -U root -W kasnet -l log-S
代表伺服器,
-U 代表使用者 (新增使用者需要 root 的權限),
-W 代表網域,
-l 代表 logfile。
因為這是一個 alpha 版本 (以 ENTER 來完成),因此沒有設定密碼。
要新增使用者,請輸入:
>> createuser marcel -p test01-p test01
表示密碼設定為 test01 。
輸出結果如下:
SAM Create Domain User
Domain: KASNET Name: marcel A CB: [U]
執行以下指令測試已成功建立使用者帳戶:
>> ntlogin marcel test01
其中一行輸出結果應會是:
Cmd_nt_login: login(marcel) test succeeded:
yes
如果您看到這一行,登入運作中的 samba 伺服器的時間會快一些。
現在要向系統宣佈電腦帳戶。
>> createuser WKS01$
Samedit 自動偵測這是電腦帳戶,並顯示:
WKS01 can now be joined to the domain, which
should
Be done on private, secure network as soon possible
Create Domain User: OK
現在已完成使用者管理,可以打 exit 離開 samedit。
8. 將 M$Win 加入網域
M$Win 2000 啟動,並「登入」為本機管理者身份後,在桌面按滑鼠右鍵,選取 Preferences。
接著是設定。
在 "member of"一行,選取 domain 並輸入網域名稱,本例是 Kasnet。
按 OK 後等一會,就會出現以下的對話方塊,歡迎您加入新網域。
(有時會問您密碼,您只需輸入一個已知使用者便可。)
接著您需要重新啟動電腦,以您之前在 Linux 上建立的使用者和密碼「登入」 M$Win 。
別忘了選取 domain。
希望您在設定 PDC 伺服器上事事順利。