11.21.2011

建置SAMBA Server

這一次要介紹的主題是─建置一個簡單的SAMBA Server。個人認為,這個SAMBA Server的設定和使用 (無論是Server端或是Client端),似乎都還蠻重要的,因為現在世面上介紹Linux系統的書,都會提到這個主題。

SAMBA所能提供的功能和設定非常地多,這一篇文章只用最快速的方法和最簡單的設定,讓SAMBA Server可以運作,且能夠自己掛載自己。

至於什麼是SAMBA (Server Message Block,伺服器訊息區塊),和CIFS (Common Internet File System,通用網路檔案系統)可以參考一下維基百科的解釋

首先,我們決定要被分享的資料夾,以及要被掛載的目錄:

mkdir -p /mnt/CIFS/; ls -ld /mnt/CIFS/
要被掛載的目錄叫CIFS,我們把它建立在根目錄的/mnt/資料夾之下。

ls -l /tmp/
而要被分享的資料夾,則是根目錄下的/tmp/資料夾。



在運作SAMBA服務之前,我們必須先確認相關的套件是否有安裝 (無論是Server端或是Client端);假如沒有就把它們安裝起來。

yum list | grep "samba"

yum list | grep "smb"

vi /etc/samba/smb.conf
緊接著我們開始編輯SAMBA的設定檔:



前面有提到,SAMBA所能提供的設定非常多,在這裡我們只先修改兩個地方,讓SAMBA Server可以運作。

首先,找到關鍵字-hosts allow-指的是SAMBA Server所要運作的網段,例如:本機的IP Address為192.168.1.4,那麼SAMBA Server就必須在這個網段運作。

注意它的表達方式:192.168.1.,只需寫位址的前24個位元,最後8個位元不用寫;127.指的是本機的Local Address (127.0.0.1)。

如下圖80~81行,每行開頭的';'字號代表*.conf檔的註解。



第二部份所要修改的地方,是我們所要分享的資料夾 (如下圖反白處);這一段語法其實是有範例的,也在下圖的282~288行。

[TEST]    // 此一SAMBA Server的分享名稱
comment = Maggie's SAMBA Server    // 此一分享的描述
path = /tmp    // 所要分享資料夾的絕對路徑
public = yes    // 此一分享是否公開
writable = yes    // 此分享的資料夾能否寫入
printable = no
write list = +staff



設定檔編輯完成之後,我們來看如何讓它運作:

service smb status    // 檢查SAMBA Server的狀態

service smb start    // 假如沒有運作,就讓它啟動

useradd maggie    // 我們新增一個叫maggie的使用者

smbpasswd -a maggie    // 替maggie這個使用者在SAMBA Server上新增一組密碼,預設為maggie1234



smbclient -L 192.168.1.4 -U maggie%maggie1234
查看192.168.1.4這台主機上,有什麼分享是給maggie的;帳號與密碼之間以'%'字號隔開。

有注意到下圖反白處嗎?? 就是我們剛剛在設定檔最後的部份所鍵入的資訊。



mount.cifs -o username=maggie //192.168.1.4/TEST /mnt/CIFS/
已經確定有東西可以分享了之後,就把它掛載。這裡要注意的是IP Address 192.168.1.4後面所接的是分享的名稱-TEST,而不是分享的資料夾-/tmp

cd /mnt/CIFS/; ls
既然掛載過來了,就進去瀏灠一下....



touch ./TEST.TXT; echo "Maggie" > ./TEST.TXT; cat -n ./TEST.TXT
掛載過來了,我們就新增一個叫"TEST.TXT"的檔案 (因為設定檔裡writable這個參數的值是yes);而檔案的內容,就只有"Maggie"這個單字。

cd ..; umount /mnt/CIFS/; ls -l /mnt/CIFS
新增完檔案之後,我們離開/mnt/CIFS/資料夾,並且卸載它。

cat -n /tmp/TEST.TXT
回到/tmp/資料夾,且檢視TEST.TXT檔案,發現剛剛在/mnt/CIFS/下所新增的檔案確實存在。表示剛剛的SAMBA功能有確實運作。



當然了,SAMBA Server我們也能夠設定讓它一開機時就運作:

chkconfig smb on

chkconfig --list smb

沒有留言:

張貼留言