Samba是一個能讓Linux系統(tǒng)應(yīng)用Microsoft網(wǎng)絡(luò)通訊協(xié)議的軟件痰哨,而SMB是Server Message Block的縮寫盖袭,即為服務(wù)器消息塊 蹬刷,SMB主要是作為Microsoft的網(wǎng)絡(luò)通訊協(xié)議赴捞,后來Samba將SMB通信協(xié)議應(yīng)用到了Linux系統(tǒng)上,就形成了現(xiàn)在的Samba軟件橱乱。后來微軟又把 SMB 改名為 CIFS(Common Internet File System),即公共 Internet 文件系統(tǒng)粱甫,并且加入了許多新的功能泳叠,這樣一來,使得Samba具有了更強(qiáng)大的功能茶宵。
Samba最大的功能就是可以用于Linux與windows系統(tǒng)直接的文件共享和打印共享危纫,Samba既可以用于windows與Linux之間的文件共享,也可以用于Linux與Linux之間的資源共享乌庶,由于NFS(網(wǎng)絡(luò)文件系統(tǒng))可以很好的完成Linux與Linux之間的數(shù)據(jù)共享种蝶,因而 Samba較多的用在了Linux與windows之間的數(shù)據(jù)共享上面。
SMB是基于客戶機(jī)/服務(wù)器型的協(xié)議瞒大,因而一臺Samba服務(wù)器既可以充當(dāng)文件共享服務(wù)器螃征,也可以充當(dāng)一個Samba的客戶端,例如透敌,一臺在Linux 下已經(jīng)架設(shè)好的Samba服務(wù)器盯滚,windows客戶端就可以通過SMB協(xié)議共享Samba服務(wù)器上的資源文件踢械,同時,Samba服務(wù)器也可以訪問網(wǎng)絡(luò)中 其它windows系統(tǒng)或者Linux系統(tǒng)共享出來的文件魄藕。
Samba在windows下使用的是NetBIOS協(xié)議内列,如果你要使用Linux下共享出來的文件,請確認(rèn)你的windows系統(tǒng)下是否安裝了NetBIOS協(xié)議背率。
組成Samba運行的有兩個服務(wù)话瞧,一個是SMB,另一個是NMB寝姿;SMB是Samba 的核心啟動服務(wù)交排,主要負(fù)責(zé)建立 Linux Samba服務(wù)器與Samba客戶機(jī)之間的對話, 驗證用戶身份并提供對文件和打印系統(tǒng)的訪問会油,只有SMB服務(wù)啟動个粱,才能實現(xiàn)文件的共享,監(jiān)聽139 TCP端口翻翩;而NMB服務(wù)是負(fù)責(zé)解析用的都许,類似與DNS實現(xiàn)的功能,NMB可以把Linux系統(tǒng)共享的工作組名稱與其IP對應(yīng)起來嫂冻,如果NMB服務(wù)沒有啟動胶征,就只能通過IP來訪問共享文件,監(jiān)聽137和138 UDP端口桨仿。
一睛低、安裝Samba
1.獲取Samba的源碼包并且進(jìn)行解壓縮
源碼下載:Samba的官方網(wǎng)站,http://www.samba.org/samba/服傍,目前最新版本已經(jīng)是4.5.2了钱雷,我下載的是3.6.13版本的。
拷貝軟件包samba-3.6.13.tar.gz到/home/user/downloads目錄下
切換目錄
cd /home/user/downloads
解壓
tar -zxvf samba-3.6.13.tar.gz
2.配置
切換目錄
cd /samba-3.6.13/source3
執(zhí)行配置命令
./configure
3.生成和安裝make && make install
在環(huán)境配置命令./configure成功執(zhí)行后吹零,可以運行命令
make
來生成二進(jìn)制可執(zhí)行文件罩抗,這可能需要五分鐘。成功生成可執(zhí)行文件后灿椅,可以通過下面命令
make install
來進(jìn)行安裝套蒂。系統(tǒng)默認(rèn)的安裝路徑是/usr/local/samba。
4.配置動態(tài)鏈接庫路徑
安裝完成后茫蛹,我們需要配置動態(tài)鏈接庫路徑操刀,因為運行samba的進(jìn)行smbd和nmbd需要到目錄/usr/local/samba/lib下的動態(tài)鏈接 庫文件。但是該目錄不是系統(tǒng)默認(rèn)的動態(tài)鏈接庫文件搜索路徑婴洼,于是我們需要將該目錄添加到文件ld.so.conf中骨坑。執(zhí)行下面的命令
vim /etc/ld.so.conf
然后,打開ld.so.conf文件窃蹋,并在該文件中加入下面這一行內(nèi)容
/usr/local/samba/lib
然后執(zhí)行命令
ldconfig
來更新動態(tài)鏈接庫緩沖卡啰。
二静稻、配置Samba
1.添加用戶
groupadd sw
useradd -g sw-s/sbin/nologin nickye
smbpasswd -a nickye
2.備份smb配置文件并編輯
cd /usr/local/samba
cp smb.conf smb.conf.bak
vim smb.conf
修改
#============================ Share Definitions ==============================
;[homes]
; comment = Home Directories
; browseable = no
; writable = yes
# Un-comment the following and create the netlogon directory for Domain Logons
; [netlogon]
; comment = Network Logon Service
; path = /usr/local/samba/lib/netlogon
; guest ok = yes
; writable = no
; share modes = no
# Un-comment the following to provide a specific roving profile share
# the default is to use the user's home directory
;[Profiles]
; path = /usr/local/samba/profiles
; browseable = no
; guest ok = yes
# NOTE: If you have a BSD-style print system there is no need to
# specifically define each individual printer
[printers]
comment = All Printers
path = /usr/spool/samba
browseable = no
# Set public = yes to allow user 'guest account' to print
guest ok = no
writable = no
printable = yes
# This one is useful for people to share files
;[tmp]
; comment = Temporary file space
; path = /tmp
; read only = no
; public = yes
# A publicly accessible directory, but read only, except for people in
# the "staff" group
[軟件部]
comment = Public Stuff
path = /home/data/data/sw
public = yes
writable = yes
printable = no
browseable = yes
write list = @sw
read list = @sw, @hw, @test, @prj, @md
valid users = @sw, @hw, @test, @prj, @md
create mask = 0775
directory mask = 0775
[硬件部]
comment = Public Stuff
path = /home/data/data/hw
public = yes
writable = yes
printable = no
browseable = yes
write list = @hw
read list = @sw, @hw, @test, @prj, @md
valid users = @sw, @hw, @test, @prj, @md
create mask = 0775
directory mask = 0775
[測試部]
comment = Public Stuff
path = /home/data/data/test
public = yes
writable = yes
printable = no
browseable = yes
write list = @test
read list = @sw, @hw, @test, @prj, @md
valid users = @sw, @hw, @test, @prj, @md
create mask = 0775
directory mask = 0775
[項目部]
comment = Public Stuff
path = /home/data/data/prj
public = yes
writable = yes
printable = no
browseable = yes
write list = @prj
read list = @sw, @hw, @test, @prj, @md
valid users = @sw, @hw, @test, @prj, @md
create mask = 0775
directory mask = 0775
[結(jié)構(gòu)部]
comment = Public Stuff
path = /home/data/data/md
public = yes
writable = yes
printable = no
browseable = yes
write list = @md
read list = @sw, @hw, @test, @prj, @md
valid users = @sw, @hw, @test, @prj, @md
create mask = 0775
directory mask = 0775
[產(chǎn)品]
comment = Public Stuff
path = /home/data/data/product
public = yes
writable = yes
printable = no
browseable = yes
write list = @md
read list = @sw, @hw, @test, @prj, @md
valid users = @sw, @hw, @test, @prj, @md
create mask = 0775
directory mask = 0775
[共用]
comment = Public Stuff
path = /home/data/data/common
public = yes
writable = yes
printable = no
browseable = yes
write list = @sw, @hw, @test, @prj, @md
read list = @sw, @hw, @test, @prj, @md
valid users = @sw, @hw, @test, @prj, @md
create mask = 0777
directory mask = 0777
三、啟動Samba
samba有兩個主要的進(jìn)程smbd和nmbd匈辱。smbd進(jìn)程提供了文件和打印服務(wù)振湾,而nmbd則提供了NetBIOS名稱服務(wù)和瀏覽支持,幫助SMB客戶定位服務(wù)器亡脸,處理所有基于UDP的協(xié)議押搪。
1.運行samba的服務(wù)進(jìn)程smbd和nmbd
/usr/local/samba/sbin/smbd –D
/usr/local/samba/sbin/nmbd –D
此時我們可以通過如下命令來進(jìn)行查看服務(wù)是否已經(jīng)啟動:
pgrep smbd
pgrep nmbd
2.設(shè)置開機(jī)自啟動
編輯文件 /etc/rc.local
添加兩行
/usr/local/samba/sbin/smbd –D
/usr/local/samba/sbin/nmbd –D