Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1707494
  • 博文数量: 607
  • 博客积分: 10031
  • 博客等级: 上将
  • 技术积分: 6633
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-30 17:41
文章分类

全部博文(607)

文章存档

2011年(2)

2010年(15)

2009年(58)

2008年(172)

2007年(211)

2006年(149)

我的朋友

分类: LINUX

2007-03-08 16:37:21


(续)
4.
  4.1 : ,
  4.2 : , , ,
5.
  5.1
  5.2
  5.3
  5.4
6.
7.
8.
9.



大標題的圖示Samba 用戶端軟體功能
現在你已經架設好了 Samba 伺服器啦!有伺服器當然要有用戶端來使用才是好的伺服器嘛!不然要這個伺服器幹嘛? 而我們假設區域網路內有 Windows/Linux 系統,這兩種系統都是透過 NetBIOS over TCP/IP 來連上 Samba 主機的, 在設定之前你必須要知道的有幾件事:
  • 在區網內的主機最好具有相同的工作群組,且具有不同的主機名稱;
  • Windows XP pro. 最多僅能允許十個用戶同時連接到網芳;
  • 你可以在網芳當中看到的通常是相通群組的主機;
  • 可以使用『搜尋』-->『電腦』-->『輸入 IP』來查到 Samba 主機;
  • Windows 的網芳預設僅有同一網域的主機才能登入!
接下來咱們就分別依照 Windows XP 及 Linux 系統來做說明吧!


小標題的圖示Windows 系統的使用
在 Windows 上面的搜尋實在挺簡單的,你有好幾種方法可以處理:
  • 打開『檔案總管』,『網路上的芳鄰』、『整個網路』、『Microsoft Windows Network』 就能看到屬於您群組的所有電腦主機了!

  • 『開始』、『搜尋』、『檔案或資料夾』、『電腦或人員』、『網路上的電腦』, 然後在出現的方框當中填寫正確的 IP ,按下『搜尋』即可! 這個方法可以適用於不在同一個群組當中的網路主機喔!
舉例來說,如果想要連接到我們的 Samba 主機的話,而又不知到這部 Samba 主機的 NetBIOS name , 那利用搜尋的結果會有點類似如下的圖示:

Windows XP 用戶端搜尋示意圖
圖九、Windows XP 用戶端搜尋示意圖

上圖九中先在左側的地方輸入正確的 IP 後,按下搜尋,如果一切順利的話那麼右上方就會出現這部 Samba 主機的說明了。 雙擊一下該主機名稱,就會出現右下方的項目!瞧!那就是我們所設定的幾個基本項目的啦!真是好高興! 然後你就可以開始進入相對應的目錄進行資料的存取了,就這麼簡單。 如果是印表機的話,那麼你將滑鼠移動到印表機的上方,按下右鍵後可以選擇『連線』的項目, 如下所示:

Windows XP 用戶端連線印表機示意圖
圖十、Windows XP 用戶端連線印表機示意圖

如果一切順利的話,嘿嘿!你就可以在點選『開始』、『設定』、『印表機和傳真』後所出現的視窗看到這部印表機囉! 真是好棒吶! ^_^


  • 讓 Windows 系統的網芳支援不同網域的 IP 連線
  • 由於 Windows XP sp2 這個作業系統版本預設的防火牆僅開放相同網域的 IP 來源使用本機的網芳資料, 所以如果是不同的網域想要使用時,預設是無法穿透 Windows 防火牆的。此時你可以修改一下防火牆的設定啊! 請叫出控制台,然後點選『Windows 防火牆』就會出現如下的圖示了:

    Windows XP 伺服器防火牆示意圖
    圖十一、Windows XP 伺服器防火牆示意圖

    按照上圖的說明,依序點選『例外』、『檔案及印表機共用』、『編輯』後, 就會出現該防火牆機制所管理的埠口以及可連線的網域,如下圖所示:

    Windows XP 伺服器防火牆示意圖
    圖十二、Windows XP 伺服器防火牆示意圖

    你可以將四組埠口通通改變成你所需要的 IP 來源,或者是將他設定為任何電腦都能連線。 不過,鳥哥不建議喔!可以參考底下的作法:

    Windows XP 伺服器防火牆示意圖
    圖十三、Windows XP 伺服器防火牆示意圖

    選擇自訂的方式來設定能夠使用你 Windows 網芳資料的來源 IP 或網段即可,然後確定之後即可處理吶! 這樣一來,及時我們的 Linux 不與 Windows 同在一個網域中,也能夠登入 Windows 存取網芳資料哩。


  • 透過 port 445 的特殊登入方式
  • 如果你知道 Samba 主機有分享出 port 445 ,並且他已經分享了某個目錄時,舉例來說, 我們的 192.168.1.254 有分享出 public 這個分享資源名稱時,那麼這個目錄的完整寫法為:『 \\192.168.1.254\public 』,我們可以透過『開始』、『執行』來處理這個玩意兒! 如下所示:

    Windows XP 透過 port 445 連線
    圖十四、Windows XP 透過 port 445 連線

    如果可以登入的話就會順利登入,否則就會彈出一個要你輸入帳號密碼的視窗,輸入正確的資料即可! 呼呼!真過癮~除此之外,我們還可以登入別人 Windows 主機的 C 或 D 槽喔!寫法則變成這樣:
      \\192.168.1.21\c$
    所以說,怕了吧!俺還真害怕~所以啊,Samba 沒必要時,那個 port 445 應該是可以關閉的吧!

    小標題的圖示Linux 系統的使用
    咱們的 Samba 有提供 Linux 網芳的用戶端功能喔!也就是說 Linux 可以掛載 Samba 主機也能掛載 Windows 提供的網芳啦! 主要是透過 smbclient 來觀察,再以 smbmount 或 mount 來掛載磁區哩。先來介紹一下 smbclient 這個指令吧:
    1. 關於查詢的功能
    [root@linux ~]# smbclient -L //[IP|hostname] [-U username]
    [root@linux ~]# smbclient -L //127.0.0.1 -U dmtsai
    Password:
    Domain=[VBIRDSERVER] OS=[Unix] Server=[Samba 3.0.10-1.4E.9]
    ....分享的資源輸出省略....
    Domain=[VBIRDSERVER] OS=[Unix] Server=[Samba 3.0.10-1.4E.9]

    Server Comment
    --------- -------

    Workgroup Master
    --------- -------
    VBIRDGRP VBIRD_OP_2
    VBIRDHOUSE VBIRDSERVER

    # 從這裡可以知道在目前網域當中有多少個工作群組與主要的名稱解析主機
    除了這個先前用過的查詢功能之外,我們可以這樣簡易使用網芳的:
    2. 利用類似 FTP 的方式登入遠端主機
    [root@linux ~]# smbclient '//[IP|hostname]/資源名稱' [-U username]
    # 意思是使用某個帳號來直接登入某部主機的某個分享資源,舉例如下:
    [root@linux ~]# smbclient '//127.0.0.1/dmtsai' -U dmtsai
    Password:
    Domain=[VBIRDSERVER] OS=[Unix] Server=[Samba 3.0.10-1.4E.9]
    smb: \> dir
    # 在 smb 底下其實就是在 //127.0.0.1/dmtsai 這個目錄底下啦!所以,
    # 我們可以使用 dir, get, put 等常用的 ftp 指令來進行資料傳輸了!
    ? :列出所有可以用的指令,常用!
    cd :變換到遠端主機的目錄
    del :殺掉某個檔案
    lcd :變換本機端的目錄
    ls :察看目前所在目錄的檔案
    dir :與 ls 相同
    get :下載單一檔案
    mget:下載大量檔案
    mput:上傳大量檔案
    put :上傳單一檔案
    rm :刪除檔案
    # 其他的指令用法請參考 man smbclient 喔!
    事實上,使用 smbclient 一點也不方便,因為使用的是 ftp 的功能語法,有點怪怪的~能不能像 Windows 那樣,可以直接連線網路磁碟機啊?這當然沒有問題!不過就需要藉由 smbmount 來協助了!smbmount 可以將遠端主機分享出來的目錄整個給他 mount 到本機的 mount point (某個目錄),如此一來, 遠端主機的目錄就好像在我們本機的一個 partition 一樣喔!可以直接執行複製、編輯等動作!這可就好用的多了! 底下我們來談一談怎麼用這個 smbmount 吧!
    [root@linux ~]# smbmount //IP/分享資源 /掛載點 [-o options]
    參數:
    -o 後面接的參數 (options) 常用的有底下這些:
    username=你的登入帳號:例如 username=dmtsai
    password=你的登入密碼:需要與上面 username 相對應啊!
    iocharset=本機的語系編碼方式,如 big5 或 utf8 等等;
    codepage=遠端主機的語系編碼方式,例如繁體中文為cp950


    範例一:以 dmtsai 的身份將其家目錄掛載至 /mnt/samba 中
    [root@linux ~]# smbmount //127.0.0.1/dmtsai /mnt/samba
    > -o username=dmtsai,password=pw_test,codepage=cp950
    [root@linux ~]# df
    //127.0.0.1/dmtsai 20161024 3088896 17072128 16% /mnt/samba
    經由 smbmount 的動作,我們就可以輕易的將遠端分享出來的咚咚給他掛載到自己 Linux 本機上面!好用的很~事實上,原本 mount 這個指令如果有支援 smbfs 的話, 那也就可以直接掛載網路上的芳鄰分享出來的目錄了!例如上面的例子當中,我們也可以這樣下達指令:
    mount -t smbfs //127.0.0.1/dmtsai /mnt/samba \
    -o username=dmtsai,password=pw_test,codepage=cp950,iocharset=big5
    更詳細的 mount 用法,請 man mount 或者看考『鳥哥的 Linux 私房菜 -- 基礎學習篇』的內容喔! ^_^


  • 查詢 NetBIOS name 與 IP 及其他相關資訊:
  • 現在我們可以透過一些 NetBIOS 相關的功能來取得 NetBIOS name ,不過,如果你還想要知道這個 NetBIOS name 的其他資訊時, 例如 IP、分享的資源等等,那可以使用 nmblookup 這個指令來搞定即可。他是這麼使用的:
    [root@linux ~]# nmblookup [-S] [-U wins IP] [-A IP] name
    參數:
    -S :除了查詢 name 的 IP 之外,亦會找出該主機的分享資源與 MAC 等;
    -U :後面一般可接 Windows 的主要名稱管理伺服器的 IP ,可與 -R 互用;
    -R :與 -U 互用,以 Wins 伺服器來查詢某個 Netbios name;
    -A :相對於其他的參數, -A 後面可接 IP ,藉 IP 來找出相對的 NetBIOS 資料;


    範例一:藉由本機找出 vbirdserver 這部主機的 IP 位址
    [root@linux ~]# nmblookup -U localhost vbirdserver
    querying vbirdserver on 127.0.0.1
    192.168.1.254 vbirdserver<00>

    範例二:找出 vbirdserver 的 MAC 與 IP 等資訊:
    [root@linux ~]# nmblookup -S vbirdserver
    querying vbirdserver on 192.168.1.255
    192.168.1.254 vbirdserver<00>
    Looking up status of 192.168.1.254
    VBIRDSERVER <00> - B
    ..__MSBROWSE__. <01> - B
    VBIRDHOUSE <1e> - B

    MAC Address = 00-00-00-00-00-00 <==因為是本機資料,所以 MAC 會成為這樣

  • 利用 smbstatus 觀察 SAMBA 的狀態
  • 如果想要查閱目前 SAMBA 有多人人來連線且哪些資源分享已經被使用的話,可以這樣看:
    [root@linux ~]# smbstatus [-pS] [-u username]
    參數:
    -p :列出已經使用 SAMBA 連線的程序 PID ;
    -S :列出已經被使用的資源分享狀態;
    -u :只列出某個使用者相關的分享資料


    範例一:列出目前主機完整的 Samba 狀態
    [root@linux ~]# smbstatus
    Samba version 3.0.10-1.4E.9
    PID Username Group Machine
    -------------------------------------------------------------------
    4973 dmtsai dmtsai 127.0.0.1 (127.0.0.1)
    # 上面列出的是與 PID 有關的資訊,可用 smbstatus -p 單純列出

    Service pid machine Connected at
    -------------------------------------------------------
    dmtsai 4973 127.0.0.1 Thu Dec 28 10:58:36 2006
    # 上面列出的則是分享資源,那個 Service 就是分享的目錄。
    你可以透過這個小程式來瞭解到目前有多少人使用你的 SAMBA 的啦!

    大標題的圖示伺服器進階管理
    除了前面提到的幾個資訊之外,在這裡我們也來談談如何讓你的 Samba 作更多的事情! 包括將 Windows 使用者的家目錄放到 Samba 上頭呢!^_^


    小標題的圖示讓 Samba 管理網域使用者:PDC
    前面介紹的內容都是屬於 Peer/Peer 的連線狀況,也就是 Samba 伺服器與 Windows 用戶端其實是平等地位的啦! 所以 Windows 用戶端需要知道 Samba 伺服器內的帳號密碼資料後,才能夠順利的使用 Samba 的資源。 不過,這樣的方式在較大型一些的區域網路環境可能就會有點困擾,例如學校的環境。

    舉例來說,如果你有一個電腦教室裡面有 50 部 Windows XP Pro. 的個人電腦,由於電腦教室大家都會使用, 因此裡面這 50 部個人電腦有使用還原精靈,也就是每次電腦重新開機後整個作業系統就會還原成原本的樣子。 但我們知道使用者總是需要有個人家目錄吧?他們總不希望這次的工作在重新開機後就失去了~ 所以我們可以利用一部主機來讓他們儲存資料啊!那就是 Primary Domain Controller (PDC) 主機囉。

    其實 Samba PDC 的作用很簡單,就是讓 Samba PDC 成為整個區域網路的領域管理員 (domain controller), 然後讓 Windows 主機加入這個領域,未來使用者利用 Windows 登入時,Windows 會前往 PDC 伺服器取得使用者的帳號密碼, 同時 PDC 還會傳送使用者的重要資料到那部 Windows 個人電腦上,而 Windows 電腦上的使用者登出時, 該使用者修改過的資料也會回傳給 PDC ,如此一來不管這個使用者在哪一部個人電腦上面登入, 他都能夠取得正確的個人資料!很棒的作用吧!

    PDC 是個很複雜的環境,他可以達到的功能相當的多,而且密碼的驗證也不必在同一部 PDC 主機上面, 不過這裡我們不談那麼複雜的東西,只是做一個簡單的練習,因此底下的這部 PDC 使用自己的密碼來進行驗證, 並且也管理自己所分享出去的資源囉!整個基本的設定流程應該是這樣的:
    • 設定好 PDC 主機的 TCP/IP 與 Windows 主機的網路,這個你應該已知如何處理了;
    • 設定 PDC 的角色定位,因為 PDC 管理自己的密碼,所以 security = user
    • PDC 最好擁有整個網域的名稱解析權力,亦即成為主要的名稱解析器;
    • 需有 netlogon 資源分享,提供 windows 2000/XP pro. 用戶端的登入之用;
    • 由於 Windows 需讀入個人設定檔,預設目錄為 profile,Linux 系統需預先設定此目錄;
    • 增加 PDC 上的使用者帳號以及機器代碼 (machine account) 等等
    • 在 Windows 2000/XP pro. 個人電腦上設定成為 PDC 的用戶端。
    底下咱們就來依序處理處理先!


  • 0. 設定 lmhosts 或 /etc/hosts 對應 Netbios 與 IP
  • 由於我們的 Samba 即將成為整個網域的名稱解析者,因此你最好將整個網域的 NetBIOS name 與 IP 的對應寫入此這個檔案當中。當然啦,如果你的網域 IP 的取得為 DHCP ,那這個檔案就不要寫了吧! 以我們這個案例為例,這個檔案的內容應該是:
    [root@linux ~]# vi /etc/samba/lmhosts
    127.0.0.1 localhost
    192.168.1.254 vbirdserver
    192.168.1.21 vbirdcpu2
    192.168.1.11 vbirdcpu1

  • 1. 設定 smb.conf 成為具有 PDC 的能力
  • 假設我們要讓 PDC 用戶端登入時可以取得他自己的家目錄,那麼需要這樣處理:
    [root@linux ~]# vi /etc/samba/smb.conf
    [global]
    workgroup = vbirdhouse
    netbios name = vbirdserver

    server string = This is vbird's samba server
    unix charset = utf8
    display charset = utf8
    dos charset = cp950
    log file = /var/log/samba/%m.log
    max log size = 50
    socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
    dns proxy = no
    template shell = /bin/false
    winbind use default domain = no
    security = user
    encrypt passwords = yes
    smb passwd file = /etc/samba/smbpasswd
    printcap name = cups
    load printers = yes
    printing = cups

    # 與 PDC 有關的一些設定值:
    # 底下幾個設定值處理成為本區域網路內的主要名稱解析器

    preferred master = yes
    domain master = yes
    local master = yes
    wins support = yes
    # 作業系統 (OS) 等級越高才能成為主網域的控制者,一般 NT 為 32,
    # Windows 2000 為 64 ,所以這裡我們設定高一點,但不可超過 255

    os level = 200
    # 底下則是設定能否利用 PDC 登入,且登入需要進行哪些動作:
    domain logons = yes
    logon drive = K: <==登入後家目錄掛載成 Windows 哪一槽
    logon script = startup.bat <==每個使用者登入後會自動執行的程式
    time server = yes <==自動調整 Windows 時間與 Samba 同步
    admin users = root <==預設的管理員帳號!預設為 root
    # 因為鳥哥不喜歡在 Samba 當中使用 root ,所以這裡你也可以指定成其他帳號。


    # 這個在指定登入者能夠進行的工作,裡面主要是具有許多執行程式:
    [netlogon] <==與前面的 logon script 有關,該程式放置在這裡
    comment = Network Logon Service
    path = /home/samba/netlogon <==你要自己主動建立此目錄
    writable = no
    write list = root
    follow symlinks = yes
    guest ok = yes


    [homes]
    comment = Home directories
    browseable = no
    writable = yes
    valid users = %S
    create mode = 0664
    directory mode = 0775
    [temp]
    comment = Temporary file space
    path = /tmp
    read only = no
    public = yes

    [root@linux ~]# testparm
    [root@linux ~]# /etc/init.d/smb 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]:指定利用網路登入時首先去查詢的目錄資源。

  • 2. 建立所需要的目錄與檔案
  • 先來建立 [netlogon] 內所需要的資料好了,那就是一個目錄:
    [root@linux ~]# mkdir -p /home/samba/netlogon
    
    接下來我們還得要建立允許使用者執行的檔案,就是那個 startup.bat 才行! 注意一下,我們這裡假設使用者家目錄為 K 槽,而 Samba 額外分享的 temp 則為 L 槽, 那你可以這樣做:
    [root@linux ~]# vi /home/samba/netlogon/startup.bat
    net time \\vbirdserver /set /yes
    net use K: /home
    net use L: \\vbirdserver\temp

    # 這個檔案的格式為:net use [device:] [directory]

    # 再將該檔案轉成 DOS 的斷行格式才行!因為是提供給 Windows 系統嘛!
    [root@linux ~]# unix2dos /home/samba/netlogon/startup.bat
    [root@linux ~]# cat -A /home/samba/netlogon/startup.bat
    net time \\vbirdserver /set /yes^M$
    net use K: /home^M$
    net use L: \\vbirdserver\temp^M$
    # 瞧見嗎?會多出個奇怪的 ^M 符號,那就是 Windows 斷行字元。

  • 3. 建立使用者
  • 在 Samba 裡面建立使用者就是利用 smbpasswd 這個指令而已,我們已經建立過,所以這裡不再說明。 但是由於我們需要 root 這個帳號來管理 PDC 與 Windows 用戶端之間連線建立時所需要的權限, 所以你必須要建立起這個使用者才行。建立的方法很簡單,直接這樣做吧:
    [root@linux ~]# smbpasswd -a root
    
    另外,我們都知道 Windows XP pro. 的使用者設定檔會被放置到『 C:\Documents and Settings\使用者帳號 』目錄中, 在該目錄底下會有類似桌面、我的最愛、應用程式設定、啟動、我的文件夾啊等等的, 這些東西會放置到 Samba PDC 的哪裡去備份啊?其實是放置到:
      /home/使用者帳號/profile/
    目錄下的,該目錄預設會被主動的建立起來,不過偶而會有一些權限錯誤的問題~傷腦筋~ 所以你可以預先處理該目錄,以 chmod 或 chown 來改變成該使用者可以存取的權限。 另外,為了避免困擾,對於新增的使用者而言,你可以這樣做:
    [root@linux ~]# mkdir /etc/skel/profile
    
    那以後新增的使用者都有可以存放來自 Windows 的特殊設定檔目錄喔!比較好管理囉~ 當然啦,使用 useradd 新增使用者後,記得也要使用 smbpasswd -a username 來讓該使用者可以使用 Samba 喔!


  • 4. 建立機器碼帳號
  • 由於 PDC 會針對 Windows 用戶端的主機名稱 (NetBIOS name) 進行主機帳號檢查, 所以我們也要為用戶端的主機名稱進行帳號的設定。咦!啥是主機帳號? 一般使用者帳號是英文或數字,主機帳號則在該帳號最後面加上一個錢字號『$』即可! 舉例來說, vbirdcpu2 這部主機可設定的帳號名稱為 vbirdcpu2$。

    而我們知道要使用 smbpasswd 增加的使用者必須要在 /etc/passwd 當中, 因此要建立這個帳號你就得要這樣做:
    [root@linux ~]# useradd -M -s /sbin/nologin -d /dev/null vbirdcpu2$
    [root@linux ~]# useradd -M -s /sbin/nologin -d /dev/null vbirdcpu1$
    會增加 -M -s -d 等參數的原因是因為不想要讓這個帳號具有可以登入的權限, 因此將這個主機帳號設定的比較怪一點~ ^_^~接下來讓 Samba 知道這個帳號是主機帳號, 所以你應該要這樣做:
    [root@linux ~]# smbpasswd -a -m vbirdcpu1$
    [root@linux ~]# smbpasswd -a -m vbirdcpu2$
    這樣便加入主機帳號囉!而我們的 Samba PDC 也就可以透過『主機帳號』來判斷 Windows 用戶端能否連上來, 若連接上 PDC 與 Windows 用戶端後,接下來一般使用者帳號就可以在 windows 用戶端登入了!


  • 5. Windows XP Pro. 用戶端的連線與登入
  • 請注意,底下的方法僅是用於 Windows 2000, Windows XP 專業版 (Pro.),一般的 Windows XP home 版本是不支援的! 如果你用戶端的主機是隨機版的 Windows XP ,通常是 Windows XP home ,那底下的方法可能就無法適用囉! 要連接上 Samba PDC 的過程也是挺簡單的,你可以這樣做:
    1. 確認 windows 用戶端的網域與主機名稱

      首先我們必須要確認 Windows 用戶端的工作群組與主機名稱跟咱們的 Samba PDC 相同, 確認的方式在區域網路裡面已經提過了,這裡在強調一次。將滑鼠移動到『我的電腦』上面,按下右鍵, 選擇『內容』,然後點選『電腦名稱』,會出現如下圖示:

      Windows 用戶端連上 PDC 的方式
      圖十五、Windows 用戶端連上 PDC 的方式

      如上圖所示,你要先確認箭頭 1 處指的主機名稱與工作群組,在我們這個案例當中的工作群組為 vbirdhouse, 這部 Windows 主機的 NetBIOS 名稱則為 vbirdcpu2 喔!如果不對的話,請按下『變更』來設定, 並且重新開機。重新開機完畢後再到圖十五的畫面當中,按下箭頭 2 所指的網路識別處。

    2. 設定主機名稱與網域名稱

      接下來我們要設定這部 Windows XP pro. 要連結到區域網路上的哪部 PDC 上面, 亦即是處理主機帳號以及 Samba PDC 負責的網域 (domain) 啦! 在圖十五按下『網路識別』後,分別在出現的視窗當中選擇:

      1. 下一步;
      2. 這台電腦是公司網路的一部份,而且我在工作時用來連線到其他電腦(T)
      3. 我的公司使用一或多個網域的網路(C)
      4. 下一步


      然後就會出現如下的視窗:

      Windows 用戶端連上 PDC 的方式
      圖十六、Windows 用戶端連上 PDC 的方式

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

      Windows 用戶端連上 PDC 的方式
      圖十七、Windows 用戶端連上 PDC 的方式

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

      Windows 用戶端連上 PDC 的方式
      圖十八、Windows 用戶端連上 PDC 的方式

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

      Windows 用戶端連上 PDC 的方式
      圖十九、Windows 用戶端連上 PDC 的方式

      恭喜您,這就表示已經連接上 Samba PDC 囉!我們希望所有的使用者都直接由 Samba PDC 控管,所以這裡請填寫 『此時不新增使用者』吧!按下一步去。

    3. 如果發生錯誤情況

      如果老是發生錯誤訊息為『使用的帳戶是電腦帳戶。請使用您的通用使用者帳戶或本機使用者帳戶來存取這台伺服器』時, 你可以這樣做的:

      • 先察看一下 /var/log/samba 裡面的登錄檔資訊,尤其是 vbirdcpu2.log 關於這部主機的資訊吶;
      • 如果還是無法解決,可以在 lmhosts 裡面增加 vbirdcpu2 的 IP 與主機名稱的對應,然後將 samba 整個關掉『/etc/init.d/smb stop』,等待一段時間讓 NetBIOS 的名稱解析時間逾時,再重新啟動 samba 『/etc/init.d/smb start』,然後再重新做一次輸入 root 的密碼那個動作

      在鳥哥嘗試過的案例中,上面第二個步驟挺有效的!不過,還是得要察看 /var/log/samba 裡面的登錄資訊才行喔!

    4. 重新開機並以新的網域名稱登入

      在圖十九之後請重新開機,開機後整個畫面會有點類似這樣:

      Windows 用戶端連上 PDC 的方式
      圖二十、Windows 用戶端連上 PDC 的方式

      請輸入你在 Samba PDC 上面擁有的帳號與密碼,當然啦,上圖中最底下的選項最重要! 現在這部 Windows 主機可以使用他自己的帳號登入,也可以透過 Samba 主機來登入喔! 粉不錯啦! ^_^

    5. 觀察使用者的家目錄與設定檔

      如果你可以順利登入的話,打開檔案總管後應該可以看到類似下方的畫面:

      Windows 用戶端連上 PDC 的方式
      圖二十一、Windows 用戶端連上 PDC 的方式

      呵呵!該連上的通通連結上來囉!你也可以在自己的家目錄 (K 槽) 新增移除資料的!是否很不錯啊! ^_^! 而當你登出之後,你在 Windows 桌面上頭所進行的各項個人化設定通通會被移動到 /home/dmtsai/profile 當中喔! 如果不相信的話,請自行前往 Samba 主機上頭瞧一瞧就知道了。

    6. 一些使用上面的技巧

      雖然 PDC 很好用,不過你要注意的是,每次你使用 PDC 上頭的帳號登入 Windows 用戶端主機時, Windows 主機會由 /home/username/profile/ 當中載入所需要的資料, 並暫時啟動一個資料夾在 C:\Documents and Settings\username 當中,如果你的家目錄下的 profile 資料太多時, 光是傳輸就會花去很多時間的!

      所以,你應該將一些檔案資料放置到你的家目錄下,亦即 K 槽當中,盡量不要使用 Windows 預設的『我的文件夾』, 因為『我的文件夾』會將資料移動到 /home/username/profile/My Documents 目錄下,同樣的, 儲存到桌面的資料會被放置到 /home/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) 是沒有作用的!請先確認才行喔!


    小標題的圖示問題克服
    通常我們在設定 SAMBA 的時候,如果是以 Workgroup 的方式來進行 smb.conf 的設定時,幾乎很容易就可以設定成功了!並沒有什麼很困難的步驟。不過,萬一還是無法成功的設定起來, 請務必察看登錄檔,也就是在 /var/log/samba 裡面的資料!在這裡面的資料當中,您會發現:咦! 怎麼這麼多檔案啊!因為我們在 smb.conf 裡面設定了:
      log file = /var/log/samba/%m.log
    那個 %m 是指 Client 的 NetBIOS Name 的意思,所以,當有個 vbirdcpu2 的主機來登入我們的 vbirdserver 主機時,那麼登入的資訊就會被紀錄在 /var/log/samba/vbirdcpu2.log 檔案喔!而如果萬一來源 IP 並沒有 Netbios name 的時候,那麼很可能是一些錯誤訊息,這些錯誤訊息就會被紀錄到 log.smbd, log.nmbd 裡面去了!所以,如果您要察看某部電腦連上您的 SAMBA 主機發生了什麼問題時,特別要留意這個登錄檔的形式喔!

    另外,如果您的 SAMBA 明明已經啟動完成了,卻偏偏老是無法成功,又無法查出問題時,建議先關閉 Samba 一陣子,再重新啟動:
      /etc/init.d/smb stop
    在我的案例當中,確實有幾次是因為 PID 與 NetBIOS 的問題,導致整個 SAMBA 怪怪的~所以完整的關閉之後, 經過一陣子的短暫時間,再重新啟動,應該就可以恢復正常了!

    還有,萬一您在進行寫入的動作時,老是發現『您沒有相關寫入的權限!』,不要懷疑,幾乎可以確定是 Permission 的問題,也就是 Linux 的權限與 SAMBA 開放的權限並不相符合!無論如何,您必須要瞭解能不能寫入 Linux 磁碟,看的是 PID 的權限與 Linxu 檔案系統是否吻合,而那個 smb.conf 裡面設定的相關權限只是在 SAMBA 運作過程當中『預計』要給使用者的權限而已,並不能取代真正的 Linux 權限喔!所以,萬一真的發現該問題存在, 請登入 Linux 系統,查驗一下該對應的目錄的 permission 吧! ^_^


    小標題的圖示使用者修改 samba 密碼
    有個問題是,我們知道使用者可以透過 passwd 修改 /etc/shadow 內的密碼,那麼使用者可否修改 samba 在 /etc/samba/smbpasswd 內的密碼呢?可以啊!直接輸入 smbpasswd 就能夠修改自己的密碼了! 非常簡單吧~不過,如果想要讓 /etc/shadow 與 /etc/samba/smbpasswd 同步的話, 那就得要動點手腳了~您可以參考底下這兩個連結來處理呢。

    小標題的圖示利用 ACL 配合單一使用者時的控管
    想像一個案例,如果你是學校的網管人員,有個兼任老師向您申請帳號,主要是要在很多班級內取得同學的專題資料。 因為該老師是兼任的,您或許擔心一不小心該教師就將同學的辛苦資料給銷毀,倒不是教師們故意的, 而是很多時候....不熟嘛!這個時候如果你將該老師加入同學的群組,然後偏偏同學們所在的目錄是群組可寫入的話, 那麼該教師就能夠擁有可讀寫的權限了,也就容易造成一些莫名的災難~

    那該怎麼辦?其實可以透過 ACL 來管理某個目錄的單一使用者權限啦!所以說, 權限的管理不必透過 smb.conf 的設定,只要透過 ACL 來管理就能夠達到你所需要的目的了。 關於 ACL 的說明我們在前面的認識網路安全當中已經提過了, 這裡不再囉唆,請自行前往查閱吶! ^_^

    大標題的圖示重點回顧
    • Samba 名稱的由來是因為需包含沒有意義的 SMB server 之故;
    • SAMBA 可以讓 Linux 與 Windows 直接進行檔案系統的使用;
    • SAMBA 是由 Andrew Tridgwell 在 1991 年的時候利用不同平台所發展出來的;
    • SAMBA 主要架構在 NetBIOS 上發展的,且以 NetBIOS over TCP/IP 克服 NetBIOS 無法跨路由的問題;

    大標題的圖示課後練習
    • 一般來說, SAMBA 使用的設定檔放置在哪裡?檔名為何?
    • 使用的檔名為 smb.conf ,通常會放置在 /etc/samba/smb.conf 裡面,不過,最好可以使用 rpm -qc packagename 來查詢!
    • 哪一個指令可以用來判斷 smb.conf 這個設定檔的正確性?
    • 當我們修改完 smb.conf 之後,記得要以 testparm 來進行 samba 的確認!
    • 哪一個指令可以用來察看 SAMBA 主機分享出什麼目錄?
    • 利用 smbclient 即可:『smbclient -L NetBiosName -U username 』!
    • smbmount 的功能為何?
    • 在 Linux 系統上面,將 Windows 的網路上的芳鄰,或者是 Linux 的 SAMBA 所提供分享的資源掛載到自己的系統下!
    • 我今天使用 smbpasswd 去新增一位使用者 badbird,讓他可以登入我的 Linux SAMBA 主機,但是無論如何就是無法新增。您認為原因可能是什麼?
    • 由於 Samba 使用者的資訊必須要存在於 /etc/passwd 裡面,既然無法新增,應該先確認 badbird 這個使用者已經存在於 Linux 系統當中了!如果還是無法新增,則需要查閱 smb.conf 的設定,看看是否 /etc/samba/smbpasswd 這個密碼檔案不存在?

    大標題的圖示參考資料
    • man 5 smb.conf
    • Study Area :
    • 電子書 Using Samba:
    • Samba PDC HOWTO:
    • SAMBA 官方網站:
    • 楊錦昌老師的 SAMBA 密技:
    • 依瑪貓的列印文件:
    • Gentoo Linux 的 Samba 文件:
    • cupsaddsmb 用法:
    • 下載 CUPS-windows 的網站:http://ftp.easysw.com/pub/cups/windows/
    • eyesblue 在討論區針對語系的說明:
    • testparm -v

    2001/09/17:好久以前曾經完成的一項任務 ^_^
    2003/07/26:將 2001/09/17 所寫的內容做了大幅度的修訂,增加原理以及更多的設定項目!
    2003/09/10:將 部分補充的更完整,因為加入了個人化的 Profiles 在 /home/samba/profiles 當中了!同時加入課後練習喔
    2003/09/30:加入了 CUPS 印表機的支援!
    2005/10/17:Samba 2.2 在中文編碼上面與最新的 samba 3.0.x 版本不同。請參考: 網友的詳細說明喔!
    2006/12/20:將舊的文章移動到
    2006/12/29:終於寫完了 Samba 了!將 PDC 改寫,很多亂亂的地方都改掉了~

    2003/07/26以來統計人數
    阅读(1373) | 评论(0) | 转发(0) |
    0

    上一篇:BLP ch2:shell编程

    下一篇:STL有感

    给主人留下些什么吧!~~