菜鳥配置SAMBA服務之4

1.實驗平臺:Ubuntu11.10(實驗未取得成功,有待於研究)ios

2.實驗名稱:PDC服務器的搭建vim

3.PDC簡介:  Primary Domain Controller (PDC)windows

   讓samba PDC 成爲整個局域網的域管理員(domain controller),而後讓windows主機加入這個域,將來用戶利用windows登陸時,windows會前往PDC服務器取得用戶的帳號和密碼,同時PDC還會傳送用戶的重要數據到那臺windows我的計算機上,而windows用戶註銷時,該用戶的數據也會返回給PDC。centos

4.PDC的主要內容:安全

   domain:lan服務器

   servername:lyang-vbox1網絡

   信任主機:liuyang-PC$dom

   信任用戶:administrator 、root 、lyang網站

   至少所須要的共享資源:netlogon 、 profile 、用戶主目錄ui

   一個簡易的 PDC 實做案例相關參數示意圖

5.設置流程:

  • 區網計算機環境設定:總體網域設定好,尤爲 Windows 的工做組與計算機名稱及 IP 等參數;
  • PDC 設定:由於 PDC 管理本身的密碼,因此 security = user;
  • PDC 最好擁有整個網域的名稱解析權力,亦即成爲主要的名稱解析器;
  • 需有 netlogon 資源共享,提供 windows7 客戶端的登入之用;
  • 因爲 Windows 需讀入我的配置文件,默認目錄爲 profile,Linux 系統需預先設定此目錄;
  • 增長 PDC 上的使用者帳號以及機器代碼 (machine account) 等等
  • 在 Windows7我的計算機上設定成爲 PDC 的客戶端。

6.PDC 服務器的建置:

        建置 NetBIOS 與 IP 對應的數據:設定 lmhosts 與 /etc/hosts(Ubuntu11.10沒有在/etc/samba/下發現lmhosts)

   

[root@www ~]# vim /etc/samba/lmhosts
127.0.0.1       localhost      <==這行是預設存在的,不要動他,底下的請自行新增
192.168.2.3 liuyang-PC
192.168.2.4 lyang-vbox1
192.168.2.5 lyang-vbox2
192.168.2.6 Lyang-PC
 [root@www ~]# vim /etc/hosts 192.168.2.3 liuyang-PC
192.168.2.4 www.Ubuntu.ly lyang-vbox1 192.168.2.5 Ubuntuclient lyang-vbox2 192.168.2.6 Lyang-PC

  

  • 建置 PDC 主設定:處理 smb.conf

        假設咱們要讓 PDC 客戶端登入時能夠取得他本身的家目錄,那麼須要這樣處理:

[root@www ~]# vim /etc/samba/smb.conf
[global]
        workgroup       = lan   <==請務必確認一下工做組與主機名
        netbios name    = lyang-vbox1
        server string   = This is lyang's samba server
        unix charset    = UTF-8
        display charset = UTF-8
        dos charset     = cp936
client lanman auth = yes
lanman auth = yes log file = /var/log/samba/log.%m max log size = 50 security = user passdb backend = tdbsam load printers = no # 與 PDC 有關的一些設定值: # 底下幾個設定值處理成爲本局域網絡內的主要名稱解析器 preferred master = yes domain master = yes local master = yes wins support = yes # 操做系統 (OS) 等級越高才能成爲主網域的控制者,通常 NT 爲 32, # Windows 2000 爲 64 ,因此這裏咱們設定高一點,但不可超過 255 os level = 100 # 底下則是設定可否利用 PDC 登入,且登入須要進行哪些動做: domain logons = yes logon drive = C: <==登入後家目錄掛載成 Windows 哪一槽 logon script = startup.bat <==每一個使用者登入後會自動執行的程序 time server = yes <==自動調整 Windows 時間與 Samba 同步 admin users = root <==預設的管理員帳號!預設爲 root logon path = \\%N\%U\profile <==使用者的我的化設定 logon home = \\%N\%U <==用戶的家目錄位置! # 這個在指定登入者可以進行的工做,裏面主要是具備許多執行程序: [netlogon] <==與前面的 logon script 有關,該程序放置在這裏 comment = Network Logon Service path = /winhome/netlogon <==重要的目錄,要本身創建才行! writable = no write list = root follow symlinks = yes guest ok = yes [homes] ....(底下保留本來設定).... [root@www ~]# testparm [root@www ~]# /etc/init.d/smb restart [root@www ~]# /etc/init.d/nmb restart

上面的設定有幾個地方比較有趣一點:

  • time server:要使 Samba 與 Windows 主機的時間同步,使用這個項目;
  • logon script:當使用者以 Windows 客戶端登入後,Samba 能夠提供一支批處理文件,讓使用者去設定好他們本身的目錄配置。整個配置的內容記錄在 startup.bat 當中。 你要注意的是,這個 startup.bat 檔名能夠隨意更改,不過他必需要放置到 [netlogon] 所指定的目錄內;
  • logon drive:那麼這個家目錄要掛載到那個分割槽? 在 Windows 底下大多以 C, D, E... 作爲磁盤的代號,你這裏能夠指定一下家目錄要放置成爲那個磁盤代號;
  • admin users:指定這個 Samba PDC 的管理員身份。
  • [netlogon]:指定利用網絡登陸時首先去查詢的目錄資源。
  • logon path:用戶登入後,會取得的環境設定數據在哪? 咱們知道用戶會有一堆環境數據,例如桌面等,這些東西都放置到這裏來。使用的變量中, %N 表明 PDC 服務器的位置, %U 則表明用戶的 Linux 家目錄。所以最終你得要有 ~someone/profile 的目錄才能夠
  • logon home:用戶的家目錄,默認與 Linux 的家目錄相同位置。
  •  創建 Windows 客戶端登入時所需的設定數據 netlogon 目錄

先來創建 [netlogon] 內所須要的數據好了,那就是一個目錄。因爲鳥哥預計將全部的 PDC 數據統統放置到 /winhome 當中,包括用戶家目錄,所以不少東西都須要修訂喔!包括後來的 SELinux 確定會出問題的~

[root@www ~]# mkdir -p /winhome/netlogon

接下來咱們還得要創建容許使用者執行的檔案,就是那個 startup.bat 才行! 注意一下,咱們這裏假設用戶家目錄爲 K 槽,那你能夠這樣作:

[root@www ~]# vim /winhome/netlogon/startup.bat
net time \\vbirdserver /set /yes net use K: /home
# 這個檔案的格式爲:net use [device:] [directory]

# 再將該檔案轉成 DOS 的斷行格式才行!由於是提供給 Windows  系統嘛!

[root@www ~]# yum install unix2dos
[root@www ~]# unix2dos /winhome/netlogon/startup.bat
[root@www ~]# cat -A /winhome/netlogon/startup.bat
net time \\vbirdserver /set /yes^M$
net use K: /home^M$
# 瞧見嗎?會多出個奇怪的 ^M 符號,那就是 Windows 斷行字符。
其餘: 若是是centos6.5系統就是unix2dos 若是是Ubuntu11.10就是dos2unix!!!

  • 創建 Windows 專用的使用者

由於鳥哥預計將使用者所有挪到 /winhome 底下,並且每一個用戶家目錄應該還要有 profile 目錄存在才行, 爲了不麻煩,因此咱們先到 /etc/skel 去處理一下,而後才創建帳號,最後才產生 samba 用戶吧! 產生 samba 用戶可使用 pdbedit 也可以直接使用 smbpasswd -a ,由於沒有要用特殊的參數, 因此,Samba 用戶就用舊的 smbpasswd 來處理便可。

[root@www ~]# mkdir /etc/skel/profile
[root@www ~]# smbpasswd -a root
[root@www ~]# pdbedit -L
root:0:root

# 重點是須要有畫底線的那幾我的物出現才行呦!

[root@www ~]# ll /winhome
drwxr-xr-x. 2 root   root   4096 Jul 29 16:48 netlogon
# 用戶的家目錄不是在 /home 而是在 /winhome 裏頭纔是對的呦!

注意:在Ubuntu11.10下useradd和adduser是不同的,這裏咱們須要adduser --home /winhome/administrator administrator

                                                                                            pdvedit -a -u administrator

那之後新增的使用者都有能夠存放來自 Windows 的特殊配置文件目錄喔!比較好管理囉~ 固然啦,使用 useradd 新增使用者後,記得也要使用 smbpasswd -a username 來讓該使用者可使用 Samba 喔!


  • 創建機器碼帳號

因爲 PDC 會針對 Windows 客戶端的主機名 (NetBIOS name) 進行主機帳號檢查, 因此咱們也要爲客戶端的主機名進行帳號的設定。咦!啥是主機帳號? 通常用戶帳號是英文或數字,主機帳號則在該帳號最後面加上一個錢字號『$』便可! 舉例來講, Lyang-PC這部主機可設定的帳號名稱爲 Lyang-PC$。

而咱們知道要使用 smbpasswd 增長的使用者必需要在 /etc/passwd 當中,所以要創建這個帳號你就得要這樣作:

[root@www ~]# useradd -M -s /sbin/nologin -d /dev/null Lyang-PC$

會增長 -M -s -d 等參數的緣由是由於不想要讓這個帳號具備能夠登入的權限, 所以將這個主機帳號設定的比較怪一點~ ^_^~接下來讓 Samba 知道這個帳號是主機帳號,因此你應該要這樣作:

[root@www ~]# smbpasswd -a -m Lyang-PC$

這樣便加入主機帳號囉!而咱們的 Samba PDC 也就能夠透過『主機帳號』來判斷 Windows 客戶端可否連上來, 若鏈接上 PDC 與 Windows 客戶端後,接下來通常使用者帳號就能夠在 windows 客戶端登入了!


  • 修改安全性相關數據

因爲咱們創建的帳號目錄在 /winhome 底下,並不是正規的 CentOS 目錄,因此最重要的 SELinux 可能會跑掉~ 因此,咱們還得要修訂 SELinux 才行!方法很簡單,將 SELinux type 轉爲 samba_share_t 便可!

[root@www ~]# chcon -R -t samba_share_t /winhome

因爲 SELinux 的數據是會繼承上層目錄的,所以將來新增的用戶,理論上,就不須要從新修訂 SELinux 的文件類型了。 可是,若是你總是發現登入 PDC 的帳號卻沒法取得家目錄,那麼就觀察 /var/log/messages 內的資料來修訂吧!


小標題的圖示16.4.3 Wimdows XP pro. 的客戶端(一下爲參考,沒有時間操做過,win7實驗失敗)

請注意,底下的方法僅適用於 Windows 2000, Windows XP 專業版 (Pro.),通常的 Windows XP home 版本是不支持的! 若是你客戶端的主機是隨機版的 Windows XP ,一般是 Windows XP home ,那底下的方法可能就沒法適用囉! 要鏈接上 Samba PDC 的過程也是挺簡單的,你能夠這樣作: (至於 Windows 7 對於 Samba 的版本要求較高,官方網站是說得高於 3.3.x 以上版本纔有支持)


  • 1. 確認 windows 客戶端的網域與主機名

首先咱們必需要確認 Windows 客戶端的工做組與主機名跟我們的 Samba PDC 相同, 確認的方式在局域網絡裏面已經提過了,這裏在強調一次。將鼠標移動到『個人計算機』上面,按下右鍵, 選擇『內容』,而後點選『計算機名稱』,會出現以下圖示:

Windows 客戶端連上 PDC 的方式流程示意圖
圖 16.4-二、Windows 客戶端連上 PDC 的方式流程示意圖

如上圖所示,你要先確認箭頭 1 處指的主機名與工做組,在咱們這個案例當中的工做組爲 vbirdhouse, 這部 Windows 主機的 NetBIOS 名稱則爲 vbirdwinxp 喔!若是不對的話,請按下『變動』來設定, 而且從新啓動。從新啓動完畢後再到上圖的畫面當中,按下箭頭 2 所指的網絡識別處。


  • 2. 設定主機名與域名

接下來咱們要設定這部 Windows XP pro. 要連接到局域網絡上的哪部 PDC 上面,亦便是處理主機帳號以及 Samba PDC 負責的網域 (domain) 啦!在圖 16.4-2 按下『網絡識別』後,分別在出現的窗口當中選擇:

  1. 下一步;
  2. 這臺計算機是公司網絡的一部份,並且我在工做時用來聯機到其餘計算機(T)
  3. 個人公司使用一或多個網域的網絡(C)
  4. 下一步

而後就會出現以下的窗口:

Windows 客戶端連上 PDC 的方式流程示意圖
圖 16.4-三、Windows 客戶端連上 PDC 的方式流程示意圖

請依序填寫 Samba 主機上面的管理員帳號與密碼,要注意這個密碼是記錄於 Samba 中的那個,可不是 /etc/shadow 喔!別搞混了~這是 Samba 服務器的設定呢。輸入以後按下一步吧,一般都會出現找不到正確主機的畫面,以下所示:

Windows 客戶端連上 PDC 的方式流程示意圖
圖 16.4-四、Windows 客戶端連上 PDC 的方式流程示意圖

鳥哥也以爲很奇怪,總是告訴我找不到!不過沒有關係,這裏咱們依舊再填一次主機的 NetBIOS name 以及組名, 如上圖所示,而後繼續按下一步,就會出現以下的畫面啦:

Windows 客戶端連上 PDC 的方式流程示意圖
圖 16.4-五、Windows 客戶端連上 PDC 的方式流程示意圖

此次就給他輸入正確的管理員帳號與密碼,記得最後面的網域就是工做組名稱,別寫錯了。 處理完畢後給他按下肯定吧!而後就會出現以下畫面:

Windows 客戶端連上 PDC 的方式流程示意圖
圖 16.4-六、Windows 客戶端連上 PDC 的方式流程示意圖

恭喜你,這就表示已經鏈接上 Samba PDC 囉!咱們但願全部的使用者都直接由 Samba PDC 控管,因此這裏請填寫 『此時不新增使用者』吧!按下一步去。


  • 3. 從新啓動並以新的域名登入

在圖 16.4-6 以後請從新啓動,開機後整個畫面會有點相似這樣:

Windows 客戶端連上 PDC 的方式流程示意圖
圖 16.4-七、Windows 客戶端連上 PDC 的方式流程示意圖

爲了保護咱們的系統,所以得要按下 [ctrl]+[alt]+[del] 三個組合按鍵後,纔會出現以下的登入畫面:

Windows 客戶端連上 PDC 的方式流程示意圖
圖 16.4-八、Windows 客戶端連上 PDC 的方式流程示意圖

目前系統上面就會有兩個可選擇的帳號管理模式,一個是本機帳號一個是 PDC 提供的帳號,那我怎知登入者是哪一個管理模式? 因此你就得要按下上述畫面的『選項』,纔會出現『登入到』的那一行數據。出現的兩個數據分別是:

  • VBIRDWINXP(此計算機):這就是你的計算機名稱,亦便是以本機帳號登入;
  • VBIRDHOUSE:就是 PDC 的 workgroup 項目,透過 PDC 的帳號來嘗試登入。

如今請輸入你在 Samba PDC 上面擁有的帳號與密碼來嘗試登入吧!那若是你輸入的帳號密碼是對的,卻發現以下的畫面時, 確定是某些檔案權限或者是 SELinux 設定錯誤!請參考 /var/log/messages 或 /var/log/samba/* 裏面的登陸檔來修改!

使用 PDC 帳號登入卻發現權限錯誤的圖示
圖 16.4-九、使用 PDC 帳號登入卻發現權限錯誤的圖示


  • 4. 觀察用戶的家目錄與配置文件

若是你能夠順利登入的話,打開檔案總管後應該能夠看到相似下方的畫面:

登入 PDC 後,取得的家目錄狀態
圖 16.4-十、登入 PDC 後,取得的家目錄狀態

呵呵!該連上的統統連結上來囉!你也能夠在本身的家目錄 (K 槽) 新增移除數據的!是否很不錯啊! ^_^! 而當你註銷以後,你在 Windows 桌面上頭所進行的各項我的化設定統統會被移動到 /winhome/dmtsai/profile 當中喔! 若是不相信的話,請自行前往 Samba 服務器上頭瞧一瞧就知道了。


小標題的圖示16.4.4 Wimdows 7 的客戶端

根據 SAMBA 官網的說明,支持 Windows 7 的 Samba 版本必需要高於 3.3.x 才行,還好,咱們的 CentOS 6.x Samba 版本真的是高於 3.3.x 的 3.5.x,所以理論上是支持 Windows 7 的!只不過 Windows 7 要加入 Samba PDC 還得要修改註冊碼才行!這部份真的是給它很困擾!在 Windows 7 機碼的修改方面,主要是修改底下的機碼:

# 1. 這個部分是進行『新增』機碼!
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\LanmanWorkstation\Parameters]
「DomainCompatibilityMode」=dword:00000001
「DNSNameResolutionRequired」=dword:00000000

修改的方式爲,在 Windows7 的執行裏面輸入『 regedit 』,會出現以下的畫面:

Windows 7 註冊機碼的動做
圖 16.4-十一、Windows 7 註冊機碼的動做

先由 (1)左側窗口一層一層點選到咱們所須要的目標去,而後 (2)觀察最底下的機碼順序看對不對。以後 (3)在右側窗口點選咱們所須要的機碼,若是是要新增,那就是在右側空白處右鍵單擊選新增便可增長一組機碼名稱。最後 (4)雙擊機碼會出現可供修改的窗口,那就改爲上面表格中的要求便可。更多關於 Windows 7 加入 PDC 的相關資料, 請查閱文末的參考數據部分喔。

等到將機碼修訂完畢,你就可使用與 Windows XP 相同的方式來加入 PDC 囉!


小標題的圖示16.4.5 PDC 之問題克服

若是總是發生錯誤訊息爲『使用的賬戶是計算機賬戶。請使用你的通用用戶賬戶或本機用戶賬戶來存取這臺服務器』時, 你能夠這樣作的:

  • 先察看一下 /var/log/samba 裏面的登陸文件信息,尤爲是 log.vbirdwinxp 關於這部主機的信息吶;

  • 若是仍是沒法解決,能夠在 lmhosts 裏面增長 vbirdwinxp 的 IP 與主機名的對應,而後將 samba 整個關掉『/etc/init.d/smb stop』,等待一段時間讓 NetBIOS 的名稱解析時間逾時,再從新啓動 samba 『/etc/init.d/smb start』,而後再從新作一次輸入 root 的密碼那個動做

在鳥哥嘗試過的案例中,上面第二個步驟挺有效的!不過,仍是得要察看 /var/log/samba 裏面的登陸信息才行喔!


  • 一些 Windows 帳號在 Windows 系統上面的使用技巧

雖然 PDC 很好用,不過你要注意的是,每次你使用 PDC 上頭的帳號登入 Windows 客戶端主機時, Windows 主機會由 /winhome/username/profile/ 當中加載所須要的數據, 並暫時啓動一個文件夾在 Windows 系統的 C:\Documents and Settings\username 當中,若是你的家目錄下的 profile 數據太多時, 光是傳輸就會花去不少時間的!

因此,你應該將一些檔案數據放置到你的家目錄下,亦即 K 槽當中,儘可能不要使用 Windows 預設的『個人文檔夾』, 由於『個人文檔夾』會將數據移動到『 /winhome/username/profile/My Documents/ 』目錄下,一樣的, 儲存到桌面的數據會被放置到『 /winhome/username/profile/桌面/ 』目錄中,那樣在登入與註銷時會花去不少時間喔! 這個小地方也要注意的呢! ^_^

好了,關於 SAMBA 的 PDC 做法咱們就談到這裏,還有更多的信息你能夠前往這個章節最後面的參考數據所列出的網址去查閱, 由於還有不少的做法吶!事實上,鳥哥以爲在一個網域當中,若是有多部的 Windows NT 主機,例如 Windows 2000/XP pro. 這一類的比較穩定的我的使用桌面版本時,使用 PDC 就頗有用了!由於 Windows 2000/XP pro. 也是一個多人的操做系統,不像 Windows 98 是單人的操做系統。因此,當使用 Windows 2000/XP pro. 而沒法登入 PDC 時,你是沒法使用 Windows 2000/XP pro. 上面的任何的信息的。 可是在 Windows 98 上面若沒法正確的登入,你仍然具備該計算機的主控權喔!

另外,設定 Windows 客戶端以前,請先確認你的 Windows 是什麼版本? 上述的動做對於 Windows XP 家用版 (Home), Windows 7 是沒有做用的!請先確認才行喔!

相關文章
相關標籤/搜索