以 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
 
 
[global]
workgroup = kasnet

server string = Samba Server (PDC)
; hosts allow = 192.168.1. 192.168.2. 127.

; load printers = yes
; printcap name = /etc/printcap
; printcap name = lpstat
; printing = bsd
; guest account = pcguest

log file = /usr/local/samba/var/log.%m

max log size = 50
security = user
; password server = <NT-Server-Name>

encrypt passwords = yes

socket options = TCP_NODELAY

interfaces = 192.168.10.1/24 192.168.5.1/24

local master = yes
os level = 64
domain master = yes
preferred master = yes
domain logons = yes

logon script = %U.bat
logon path = \\%L\Profiles\%U

wins support = yes

domain group map = /samba/private/domaingroup.map
domain user map = /samba/private/domainuser.map

[homes]
comment = Home Directories
browseable = no
writable = yes

[netlogon]
comment = Network Logon Service
path = /samba-tng/netlogon
browseable = no
writable = no
share modes = no

[Profiles]
path = /samba-tng/profile
writeable = yes
browseable = no
guest ok = yes

;[printers]
; comment = All Printers
; path = /usr/spool/samba
; browseable = no
; guest ok = no
; writable = no
; printable = yes

[public]
comment = Public Stuff
path = /samba-tng/public
public = yes
writable = yes
printable = no


完成所有設定後,您可以利用以下指令檢查設定檔案:

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 伺服器上事事順利。

arrow
arrow
    全站熱搜

    Bluelove1968 發表在 痞客邦 留言(0) 人氣()