1. 程式人生 > >Linux下實現共享資料夾-Samba配置

Linux下實現共享資料夾-Samba配置

1、寫在前面

Windows利用SMB協議來實現作業系統間檔案和印表機共享,而Samba本身具備SMB協議,它實現了局域網內與Windows系列計算機的資源共享。也就是說,Samba解決了windows 和 Linux以及其他作業系統之間的資源共享問題。

①SMB協議
SMB (Server Message Block,服務資訊塊) 協議,是區域網上的共享檔案/印表機的一種協議,它可以為網路內部的其他windows和linux 機器提供檔案系統、列印服務。SMB的工作原理是讓NetBIOS和SMB執行在TCP/IP之上,且使用NetBIOS的nameserver讓Linux機器可以在Windows 網路鄰居里被瀏覽。

②Samba
Samba是用來實現SMB的一種軟體,由澳大利亞的Andew Tridgell開發,是一種在Linux 環境裡執行的自由軟體。它可以完成如下功能:
     (1)檔案服務和列印服務,實現Windows和Linux的資源共享。(2)登入伺服器,可以作為區域網的伺服器。(3)作為主域控制器。(4)WINS伺服器。(5)支援SSL。(6)支援SWAT。

2、Linux系統上搭建Samba伺服器和簡單配置(Linux系統:CentOS 6.3)

①服務查詢

# rpm -qa | grep samba


預設情況下,Linux系統中預設安裝了Samba服務包的一部分 ,查詢到存在的包如上。

②Samba安裝

考慮安裝包依賴的問題,採用yum命令進行安裝。雖然已安裝部分包,使用yum安裝的過程中對已安裝的包不會安裝,如有更新則進行更新。

# yum install samba
安裝結果如下:



③配置Samba

        Samba的配置檔案一般在/etc/samba目錄中,主配置檔名為smb.conf,檔案中記錄著大量的規則和共享資訊,是samba服務的核心配置檔案,搭建samba服務的大部分配置都在該檔案中。
        Samba伺服器的工作原理是:客戶端向Samba伺服器發起請求訪問共享目錄,Samba伺服器接收請求,查詢smb.conf檔案,檢視共享目錄是否存在,以及來訪者的訪問許可權,如果來訪者具有相應的許可權,則允許客戶端訪問,最後將訪問過程中系統的資訊以及採集的使用者訪問行為資訊存放在日誌檔案中。

(1)修改配置檔案

備份配置檔案

# cd /etc/samba
# mv smb.conf smb.confbak

重新建立smb.conf檔案

# touch smb.conf
編輯新建立的smb.conf
vim smb.conf
內容如下:

[global]
        workgroup = Linux
        netbios name = Linux_CentOS
        server string = Linux Samba Server
        security = share
[linux_centos]
        path = /tmp/linux_share
        writeable = yes
        browseable = yes
        guest ok = yes

註解說明如下:

[global]全域性配置,是必寫的。其中有如下的幾行;
workgroup         Windows中顯示的工作組;
netbios name   Windows中顯示的計算機名;
server string     Samba伺服器說明,可自定義,不重要;
security              驗證和登入方式;share表示不用設定使用者和密碼;另外一種常用的是user的驗證方式;

[linuxsir] 在Windows中顯示出來的共享目錄;
path               設定要共享的目錄位置;
writeable      是否可寫;
browseable 是否在工作組下可以瀏覽共享資料夾;
guest ok       匿名使用者以guest身份是登入;

(2)建立目錄並授予許可權

# mkdir -p /tmp/linux_share
# chown -R nobody:nobody /tmp/linux_share
註解說明:可以用 id nobody檢視使用者組

(3)服務啟動與關閉

        Samba 有兩個守護程序:smbd 和nmbd,它們是Samba的核心程序。nmbd程序使其他計算機瀏覽Linux伺服器,smbd程序在SMB服務請求到達時對它們進行處理,並且為使用或共享的資源進行協調。

服務啟動:

# smbd
# nmbd
另一種方式:

服務啟動與關閉: 

# service smb start
# service smb stop

服務的檢視:

# service smb status

# chkconfig --list smb