設定 SAMBA 伺服器
如果你已經依序一步一步的將你的 Linux 當作主機安裝好了,這時,你會不會覺得,Linux 跟你的日常工作的 Windows 電腦的互動不是很好呢?在這兩部機器之間的資料互傳必須經過 FTP 協定才能傳送,真麻煩!不是嗎?呵呵!這時, SAMBA Server 就是你的救星了!使用了 SAMBA Server 可以讓你的 Linux 與 Windows 透過『網路上的芳鄰』來互傳資料,安裝了 SAMBA 之後,從此,你的資料都可以使用『網路上的芳鄰』來傳送囉!真好!不是嗎?
應用實例一:以鳥哥為例,由於我都是使用 Windows 系統來編輯我的網頁畫面,然後再傳到我的 Linux 機器上。一開始,鳥哥也是以 FTP 來傳送我的網頁的,後來發現,這樣在我的 Windows 上面需要有一份網頁資料,然後修改完成之後又要傳到 Linux 上面,如此便有兩個相同的檔案,真是討厭!後來,鳥哥就安裝了 SAMBA 伺服器,將 Linux 上我的網頁目錄打開成可以資源分享,如此一來,鳥哥就可以直接透過 Windows 的『網路上的芳鄰』來修改我的網頁資料囉!
應用實例二:另外,在我的實驗室中,由於常常有比較大量的文件資料需要備份,然後我們研究室的電腦也不少,我就在我們 Linux 主機上,利用 SAMBA 開放一個大的磁碟空間,讓每個人都可以透過 Windows 的『網芳』將自己的資料傳上這部電腦來做為備份之用,這樣也比較容易備份的工作呀!
要架設 SAMBA 之前,你得先將你的區域網路內的電腦連線架好,這可以分為兩部分來說明:
- 硬體連線:基本上每部電腦都以 Hub 連接,並請注意你的網路線應該都是 RJ-45 接頭的平行線,連接的方式可以參考之前的『區域網路』說明。
你必須先在 Windows 當中設定這些通訊協定之後,才有辦法連上所有其他的電腦呀!因此,請先設定你的區域網路吧!
- 網路設定:除了硬體方面的連線需要注意之外,每一部 Windows 的電腦都需要在網路組態中設定以下的通訊協定:
這些協定的設定方式你可以來這裡看看。
- TCP/IC
- NetBEUI
- IPX/SPX
假設我們要分享 Linux 上面的網頁目錄(例如我們這個網頁的教學中,預設的網頁目錄是 /usr/local/apache/htdocs 這一個),並且,假設我們的 Windows 的 IP 為 192.168.1.11 這一個,而你的區域網路設定中,群組名稱為 VBIRDHOME ,Linux 主機的名稱為 vbird ,而 Windows 想設定為 VBird_windows,想要使用的人員為 vbird ,也就是:上面注意一下,為了避免設定上的困擾,主機的名稱最好一定以主機名稱(就是你登入你的系統之後,在指令列中,顯示在 @ 之後的名稱,以我為例,我的 DNS 為 vbird.adsldns.org ,而主機名稱則為 vbird 囉)來設定,鳥哥曾經以不同的名稱設定,結果是...殘念....。那要如何設定呢?其實很簡單的!
- Linux 主機對內 IP 為 192.168.1.2 而名稱為 vbird;
- Windows 機器 IP 為 192.168.1.11 而名稱為 VBird_Windows;
- 工作群組為 VBirdHome;
- 欲分享的 Linux 目錄為 /usr/local/apache/htdocs;
- 欲使用這部機器的人員為 vbird
- 修改 /etc/lmhosts 這個檔案:
這個檔案的目的是列出你的區域網路中的所有 PC 的 『IP』 與 『電腦名稱』,檔案有點像這樣:你可以將上面的『127.0.0.1 localhost』這一行預設的主機名稱取消,這一行是 PC 中預設的遞迴網路,每部機器上都會有的喔!如果還有其他的機器,就一起加上去吧!
[root@tsai /etc]# vi /etc/lmhosts 127.0.0.1 localhost
192.168.1.2 VBird_Linux
192.168.1.11 VBird_win2000
- 設定 /etc/smb.conf 主要設定:
如果照我們剛剛的要求來設定的話,就會像這樣:信不信,這樣就設定妥當囉!其他的設定都不用改變,只要自行增加上面的 client code page = 950 那一行,及 [apache] 後面那幾行,並將 encrypt passwords = yes 那兩行的註解拿掉,就 OK 喔!
[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 <==是否公開,是的,請公開!
- 測試 smb.conf 的語法:
設定完了 smb.conf 之後,為了保險,請預先測試看看語法有沒有錯誤,請輸入:可以看到,在執行了 testparm 之後,系統告訴你,你總共開了三個資源分享,其中, home 與 printers 是預設的,只有 apache 是你新加的分享喔!(按 Enter 後就可以離開囉)
[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
- 開始設定使用者密碼:
我們是設定這部主機上有紀錄的使用者才可以使用這部主機的資源分享,如上面的設定,我們假設使用者為 vbird ,那樣的話,你要如何設定使用者呢?可是要記得, 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.
- 開始啟動 SAMBA 伺服器:
啟動的方法真是簡單:這樣就 OK 囉!沒錯,這樣就設定完成了!
[root@vbird /etc]# /etc/rc.d/init.d/smb start
[root@vbird /etc]# setup
選擇 System services 後,再選擇
[*]smb
如此一來,每次開機都會自動執行 SAMBA 囉!
- 設定使用者權限:
好啦,剛剛我們不是已經設定要開放主機的網頁目錄嗎?就是 /usr/local/apache/htdocs 這個目錄,但是這個目錄應該是 nobody 的喔,而且權限大概只會開放到可讀與可執行,那樣的話,不就沒有辦法寫入或者更改檔案了嗎?別擔心,請將上面的檔案設成:chmod 777 /usr/local/apache/htdocs
就可以了!不過要小心的是,如此一來大家都可能可以修改你的檔案了,不可不防喔!如果你要考慮的多一點時,可以將目錄的所有人設成是你自己(如上面例子,可以用 chown -R vbird:vbird /usr/local/apache/htdocs 來取代之),不過,仍要小心相關套件的配合喔!基本上,比較簡單的方法仍然是直接以 chmod 777 來做是比較快!
好了,已經在 Linux 上面設定好了,區域網路也設定完成了,接下來就是直接使用網路上的芳鄰來連線了,不過,這裡有一些限制喔,請你需要注意一下,不然你一定連不上 Linux 的哩!呵呵!那樣就 OK 囉!從此之後,只要以『網路上的芳鄰』來連線 Linux 以傳送檔案資料就可以囉!
- 你的 Linux 的 /etc/smb.conf 檔案中,設定的工作群組,必須與你的 Windows 內的工作群組相同;
- 你在登入 Windows 的時候(就是開機畫面之後),一定要使用 smbpasswd 檔案中有的人名,以我為例,我必須以 vbird 登入我的 Windows 系統。
- 在 /etc/lmhosts 檔案中,你的 Linux 主機 IP 對應的 主機名稱 必須是 Linux 主機的名稱!