鳥哥的 Linux ADSL 私房菜


設定 SAMBA 伺服器
最近更新日期:2001/09/17
什麼是 SAMBA 伺服器
區域網路設定
Linux 上的設定
Windows 上的設定


什麼是 SAMBA 伺服器
如果你已經依序一步一步的將你的 Linux 當作主機安裝好了,這時,你會不會覺得,Linux 跟你的日常工作的 Windows 電腦的互動不是很好呢?在這兩部機器之間的資料互傳必須經過 FTP 協定才能傳送,真麻煩!不是嗎?呵呵!這時, SAMBA Server 就是你的救星了!使用了 SAMBA Server 可以讓你的 Linux 與 Windows 透過『網路上的芳鄰』來互傳資料,安裝了 SAMBA 之後,從此,你的資料都可以使用『網路上的芳鄰』來傳送囉!真好!不是嗎?
應用實例一:以鳥哥為例,由於我都是使用 Windows 系統來編輯我的網頁畫面,然後再傳到我的 Linux 機器上。一開始,鳥哥也是以 FTP 來傳送我的網頁的,後來發現,這樣在我的 Windows 上面需要有一份網頁資料,然後修改完成之後又要傳到 Linux 上面,如此便有兩個相同的檔案,真是討厭!後來,鳥哥就安裝了 SAMBA 伺服器,將 Linux 上我的網頁目錄打開成可以資源分享,如此一來,鳥哥就可以直接透過 Windows 的『網路上的芳鄰』來修改我的網頁資料囉!
應用實例二:另外,在我的實驗室中,由於常常有比較大量的文件資料需要備份,然後我們研究室的電腦也不少,我就在我們 Linux 主機上,利用 SAMBA 開放一個大的磁碟空間,讓每個人都可以透過 Windows 的『網芳』將自己的資料傳上這部電腦來做為備份之用,這樣也比較容易備份的工作呀!


區域網路設定
要架設 SAMBA 之前,你得先將你的區域網路內的電腦連線架好,這可以分為兩部分來說明: 你必須先在 Windows 當中設定這些通訊協定之後,才有辦法連上所有其他的電腦呀!因此,請先設定你的區域網路吧!


Linux 上的設定
假設我們要分享 Linux 上面的網頁目錄(例如我們這個網頁的教學中,預設的網頁目錄是 /usr/local/apache/htdocs 這一個),並且,假設我們的 Windows 的 IP 為 192.168.1.11 這一個,而你的區域網路設定中,群組名稱為 VBIRDHOME ,Linux 主機的名稱為 vbird ,而 Windows 想設定為 VBird_windows,想要使用的人員為 vbird ,也就是: 上面注意一下,為了避免設定上的困擾,主機的名稱最好一定以主機名稱(就是你登入你的系統之後,在指令列中,顯示在 @ 之後的名稱,以我為例,我的 DNS 為 vbird.adsldns.org ,而主機名稱則為 vbird 囉)來設定,鳥哥曾經以不同的名稱設定,結果是...殘念....。那要如何設定呢?其實很簡單的!
  1. 修改 /etc/lmhosts 這個檔案

  2. 這個檔案的目的是列出你的區域網路中的所有 PC 的 『IP』 與 『電腦名稱』,檔案有點像這樣:
    [root@tsai /etc]# vi /etc/lmhosts

    127.0.0.1 localhost
    192.168.1.2     VBird_Linux
    192.168.1.11    VBird_win2000

    你可以將上面的『127.0.0.1 localhost』這一行預設的主機名稱取消,這一行是 PC 中預設的遞迴網路,每部機器上都會有的喔!如果還有其他的機器,就一起加上去吧!
     
  3. 設定 /etc/smb.conf 主要設定

  4. 如果照我們剛剛的要求來設定的話,就會像這樣:
    [root@tsai /etc]# vi /etc/smb.conf
    底下為 smb.conf 這個檔案的主要內容

    [global]
       client code page = 950  <==這一行請自行輸入,可以看見中文!
       workgroup = VBirdHome <==這裡輸入群組名稱(重要,需與你的工作群組相同)
       server string = VBird's ADSL Server <==這裡只是說明列(不打緊)

       security = user       <==這是說明密碼為使用者

       encrypt passwords = yes 
       smb passwd file = /etc/smbpasswd
    上面這兩行很重要,請在 /etc/smb.conf 檔案中找到這兩行,
    並將前面的註解(;符號)拿掉!重要!

    以下是開啟使用者的家目錄與網頁目錄打開的意思
    [homes]
       comment = Home Directories
       browseable = no
       writable = yes

    [apache]
       comment = apache_home_page    <==這是說明列
       path = /usr/local/apache/htdocs  <==欲分享的目錄
       read only = no  <==是否唯讀,設定為 no 則你在 windows 中可以讀寫!
       public = yes  <==是否公開,是的,請公開!

    信不信,這樣就設定妥當囉!其他的設定都不用改變,只要自行增加上面的 client code page = 950 那一行,及 [apache] 後面那幾行,並將 encrypt passwords = yes 那兩行的註解拿掉,就 OK 喔!
     
  5. 測試 smb.conf 的語法

  6. 設定完了 smb.conf 之後,為了保險,請預先測試看看語法有沒有錯誤,請輸入:
    [root@tsai /etc]# testparm
    Load smb config files from /etc/smb.conf
    Processing section "[homes]"
    Processing section "[apache]"
    Processing section "[printers]"
    Loaded services file OK.
    Press enter to see a dump of your service definitions
    可以看到,在執行了 testparm 之後,系統告訴你,你總共開了三個資源分享,其中, home 與 printers 是預設的,只有 apache 是你新加的分享喔!(按 Enter 後就可以離開囉)
     
  7. 開始設定使用者密碼

  8. 我們是設定這部主機上有紀錄的使用者才可以使用這部主機的資源分享,如上面的設定,我們假設使用者為 vbird ,那樣的話,你要如何設定使用者呢?
    [root@tsai /etc]# touch /etc/smbpasswd  <==這是建立密碼檔案的指令
    [root@tsai /etc]# chmod 600 /etc/smbpasswd <==將密碼變成只有 root 可讀寫
    [root@tsai /etc]# smbpasswd -a vbird <==增加 SAMBA 使用者 vbird
    New SMB password:             <==輸入密碼
    Retype new SMB password:       <==再一次輸入密碼
    Password changed for user vbird.
    可是要記得, vbird 必須已經在你的系統中登入為使用者了!
     
  9. 開始啟動 SAMBA 伺服器

  10. 啟動的方法真是簡單:
    [root@vbird /etc]# /etc/rc.d/init.d/smb start
    [root@vbird /etc]# setup 
    選擇 System services 後,再選擇
    [*]smb 
    如此一來,每次開機都會自動執行 SAMBA 囉!
    這樣就 OK 囉!沒錯,這樣就設定完成了!
     
  11. 設定使用者權限

  12. 好啦,剛剛我們不是已經設定要開放主機的網頁目錄嗎?就是 /usr/local/apache/htdocs 這個目錄,但是這個目錄應該是 nobody 的喔,而且權限大概只會開放到可讀與可執行,那樣的話,不就沒有辦法寫入或者更改檔案了嗎?別擔心,請將上面的檔案設成:
      chmod 777 /usr/local/apache/htdocs
    就可以了!不過要小心的是,如此一來大家都可能可以修改你的檔案了,不可不防喔!如果你要考慮的多一點時,可以將目錄的所有人設成是你自己(如上面例子,可以用 chown -R vbird:vbird /usr/local/apache/htdocs 來取代之),不過,仍要小心相關套件的配合喔!基本上,比較簡單的方法仍然是直接以 chmod 777 來做是比較快!


Windows 上的設定
好了,已經在 Linux 上面設定好了,區域網路也設定完成了,接下來就是直接使用網路上的芳鄰來連線了,不過,這裡有一些限制喔,請你需要注意一下,不然你一定連不上 Linux 的哩! 呵呵!那樣就 OK 囉!從此之後,只要以『網路上的芳鄰』來連線 Linux 以傳送檔案資料就可以囉!
2002/ 01/01以來統計人數