嵌入式環境搭建之samba

嵌入式環境搭建之samba


Author:tiger-john
Time:2013-07-11
Blog:http://blog.csdn.net/tigerjb/article/details/9305645

轉載請註明出處!


[摘要]:本文主要介紹了samba存在的前因後果,已經對samba進行簡要介紹;並介紹了samba在ubuntu下安裝,samba服務器端配置以及如何在window7共享samba服務器。最後,總結了samba的使場景。

一、      Samba的前世今生

在早期網絡世界中,文檔和數據在不同主機之間的傳輸大多是使用 FTP 來進行傳送。不過,使用FTP 傳輸文檔和數據卻存在一個缺陷,那就是無法直接修改Server上面的文檔和數據!即當你要修改服務器上某個文件時,必須想將該文件從服務器上下載到客戶端後才能修改,修改後再將其上傳到服務器端。從該過程中,可以看出該文件在Server和Client端都會存在。如果有時你修改了一個文檔,但是你卻忘記將該文檔上傳回到主機,那麼將會造成客戶端和服務端文檔版本不對。

所以,IT界的前輩們就提出可不可以在 Client 端的機器上面直接取用Server 上面的文檔,如果可以在 Client 端直接進行 Server 端檔案的存取,那麼在Client 端就不需要存在該檔案數據,也就是說,只要有 Server 上面的檔案資料存在就可以!那麼有沒有這樣的 File System ?--------》NetworkFile System, NFS 就是這樣的文檔系統之一!只要在 Client 端將 Server所提供分享的目錄掛載進來,那麼在 Client 的機器上面就可以直接取用 Server上的檔案數據,而且,該數據就像 Client 端上面的partition 一般!而除了可以讓 Unix Like 的機器互相分享檔案的NFS 服務器之外,在微軟( Microsoft ) 上面也有類似的文案系統,那就是 CommonInternet File System, CIFS 這個咚咚啦!CIFS 最簡單用法就是目前常見的『網絡上鄰居』。Windows 系統的計算機可以透過桌面上『網絡鄰居』來分享別人所提供的檔案數據。不過,NFS僅能讓 Unix 機器溝通, CIFS 只能讓 Windows 機器溝通。那麼有沒有讓Windows 與 Unix-Like 這兩個不同的平臺相互分享檔案數據的檔案系統?

二、   samba簡介

Samba就是在上面所提到的需求下產生了。Samba是在Linux和UNIX系統上實現SMB協議的一個免費軟件,由服務器及客戶端程序構成。它可以實現windows和Unix-Like兩個平臺之間互相分享文檔和數據。

三、   samba的安裝

在Ubuntu12.04之後,系統會自帶samba系統。如果在以前的Ubuntu系統中可以通過下面的命令進行安裝。

sudo apt-get install samba samba-common

四.配置smb.conf文件

Samba的配置文件一般就放在/etc/samba目錄中,主配置文件名爲smb.conf,文件中記錄着大量的規則和共享信息,所以是samba服務非常重要的核心配置文件,完成samba服務器搭建的大部分主要配置都在該文件中進行。

Samba服務器的工作原理是:客戶端向Samba服務器發起請求,請求訪問共享目錄,Samba服務器接收請求,查詢smb.conf文件,查看共享目錄是否存在,以及來訪者的訪問權限,如果來訪者具有相應的權限,則允許客戶端訪問,最後將訪問過程中系統的信息以及採集的用戶訪問行爲信息存放在日誌文件中。

4.1 samba配置文件中各字段的含義:

(1)security = user

說明:設置用戶訪問Samba Server的驗證方式,一共有四種驗證方式。

1> share:用戶訪問Samba Server不需要提供用戶名和口令, 安全性能較低。

2.>user:Samba Server共享目錄只能被授權的用戶訪問,由Samba Server負責檢查賬號和密碼的正確性。賬號和密碼要在本Samba Server中建立。

3.> server:依靠其他Windows NT/2000或Samba Server來驗證用戶的賬號和密碼,是一種代理驗證。此種安全模式下,系統管理員可以把所有的Windows用戶和口令集中到一個NT系統上,使用Windows NT進行Samba認證, 遠程服務器可以自動認證全部用戶和口令,如果認證失敗,Samba將使用用戶級安全模式作爲替代的方式。

(2)comment = 任意字符串

說明:針對共享資源所做的說明文字,默認爲空字符串。

(3)path = 共享目錄路徑

說明:path用來指定共享目錄的路徑。可以用%u、%m這樣的宏來代替路徑裏的unix用戶和客戶機的Netbios名,用宏表示主要用於[homes]共享域。例如:如果我們不打算用home段做爲客戶的共享,而是在/home/share/下爲每個Linux用戶以他的用戶名建個目錄,作爲他的共享目錄,這樣path就可以寫成:path = /home/share/%u; 。用戶在連接到這共享時具體的路徑會被他的用戶名代替,要注意這個用戶名路徑一定要存在,否則,客戶機在訪問時會找不到網絡路徑。同樣,如果我們不是以用戶來劃分目錄,而是以客戶機來劃分目錄,爲網絡上每臺可以訪問samba的機器都各自建個以它的netbios名的路徑,作爲不同機器的共享資源,就可以這樣寫:path = /home/share/%m 。

(3)browseable = yes/no

說明:browseable用來指定該共享是否可以瀏覽。

(4)writable = yes/no

說明:writable用來指定該共享路徑是否可寫。

(5)read only:用於設置共享的資源是否爲只讀。

read only =yes:允許只讀

read only = no; 可讀寫

(6)available = yes/no

說明:available用來指定該共享資源是否可用。

(7)admin users = 該共享的管理者

說明:admin users用來指定該共享的管理員(對該共享具有完全控制權限)。在samba 3.0中,如果用戶驗證方式設置成“security=share”時,此項無效。

例如:admin users =bobyuan,jane(多個用戶中間用逗號隔開)。

(8)valid users = 允許訪問該共享的用戶

說明:valid users用來指定允許訪問該共享資源的用戶。

例如:valid users = bobyuan,@bob,@tech(多個用戶或者組中間用逗號隔開,如果要加入一個組就用“@+組名”表示。)

(9)invalid users = 禁止訪問該共享的用戶

說明:invalid users用來指定不允許訪問該共享資源的用戶。

例如:invalid users = root,@bob(多個用戶或者組中間用逗號隔開。)

(10)write list = 允許寫入該共享的用戶

說明:write list用來指定可以在該共享下寫入文件的用戶。

例如:write list = bobyuan,@bob

(11)public = yes/no

說明:public用來指定該共享是否允許guest賬戶訪問。

(12)guest ok = yes/no

說明:是否允許用戶不使用帳號和密碼訪問此資源。

guest  ok=yes:允許用戶不使用帳號和密碼訪問此資源

guest  ok=no:不允許用戶不使用帳號和密碼訪問此資源

(13)host allow:設置連接主機的地址:

hosts allow = 192.168.0.server.abc.com:即允許來自192.168.0.或

server.abc.com

(13)host deny:設置禁止連接的主機地址

hosts deny = 192.168.2:即不允許來自192.168.2主機訪問此samba服務器的資源

4.2實例:

如果要實現將ubuntu主機上的所有文件和windows用戶進行共享。可以使用以下的配置.

[hostname]

        path=/home/hostname

        valid users=hostname

        public=no

        writable=yes

        printable=no

        create mask=0765

        security= user

Note:將上面的配置信息複製到/etc/samba/smb.conf文件中的最後,在將上面標紅的部分改成自己對應的主機名即可。

4.3設置samba密碼

當在windows映射ubuntu主機時,要用到該密碼,該密碼與ubuntu登錄密碼可以不一樣。

命令格式爲:

smbpasswd–a  hostname

Note:hostname爲自己ubuntu的主機名。

4.4.restart samba

設置完之後,重新啓動samba服務。在ubuntu下使用命令:service smbd  restart 重新啓動samba服務。

四.使用Windows共享ubuntu

1.打開我的電腦,右擊映射網路驅動器,輸入ubuntu主機的ip地址和主機名(\\server\hostname),例如\\192.168.1.99\jibo


2.然後,點擊瀏覽後,輸入剛纔設置的samba密碼即可進行網絡映射。

Ok, youcan enjoy it!!!

總結

(1)Why(爲什麼要出現samba)

爲了實現unix like機器和windows機器之間文件的共享。

(2)how(Samba的使用場景)

1>Windows與Linux的網絡共享協議,使用於虛擬機和本機以及遠程Server與本機的共享

2>對於同一個共享文件,針對不同的用戶可設置不同的權限,可設置密碼保護

3>把linux機器當作服務器,多臺windows客戶機通過samba來共享linux機器之間的數據和文件,適合團隊開發

4>即時同步


samba高級應用請參考:samba高級應用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章