一、服務概述
SMB/CIFS
SMB(Server Message Block,服務消息塊)
CIFS(CommonInternet FIle System,通用互聯網文件系統)
Samba服務通常用來做文件服務器,它可以實現 windows 與類 Unix
實現共享打印機,共享文件等功能,samba 底層也是 CIFS 協議。
二、安裝需要的軟件包
samba 服務端軟件
samba-client 客戶端軟件
samba-common 提供服務端和客戶端的公共組件
System-config-samba samba 的圖形界面軟件包
Samba-swat samba的web界面管理軟件包
三、samba 服務相關進程及端口號
/usr/sbin/smbd 爲客戶機提供服務器中的共享資源的訪問
/usr/sbin/nmbd 提供基於 NetBIOS 協議的主機名稱解析
Samba的腳本 /etc/init.d/smb
Samba的端口:
Nmbd:(137138)NetBIOS 協議
smbd:139(SMB 協議) 445(CIFS 協議)
四、安裝服務
1、掛載光盤
mount/dev/cdrom /mnt
2、安裝軟件包
rpm-ivh samba-3.6.9-151.el6.x86_64.rpm
rpm-ivh samba-client-3.6.9-151.el6.x86_64.rpm
rpm-ivh samba-common-3.6.9-151.el6.x86_64.rpm
3、啓動服務
servicesmb start
4、查看端口是否存在
netstat-anpt |grep smb
5.samba配置文件講解
samba服務的主配置文件/etc/samba/smb.conf主要由兩部分組成:
(1)Global Settings 全局參數設置 該設置都是與 Samba 服務整體運行環境有關的選項,它的設置項目是針對所有共享資源的。
[global] 全局設置,裏面的配置信息對整個服務器都生效
Workgroup = MYGROUP 工作組的名字
Server string = Samba Server Version %v 對 samba 的描述信息
; netbios name = MYSERVER
;interfaces=lo eth0 192.168.12.2/24 192.168.13.2/24
; hosts allow = 127. 192.168.12. 192.168.13.
注意,關於 samba 服務的 IP 的表示方法有點特殊,只需要寫出網絡位,主機位省略。127.0.0.0 寫成 127.
192.168.12.0寫成 192.168.12.
security= user #Samba 的安全模式
passdb backend = tdbsam
關於 samba 的五種安全模式:
Share 允許匿名訪問
User 需要用戶名和密碼認證,認證信息來自於 samba 服務本身
Domain 認證來自於網絡中另一臺計算機
Server 和 domain 一樣
Ads 使用微軟的 AD 來認證
(2)Share Definitions 共享目錄 該設置針對的是共享目錄個別的設置,只對當前的共享資源起作用。
[homes]
comment = Home Directories
browseable = no
writable = yes
; valid users = %S
; valid users = MYDOMAIN\%S
這裏有一段homes的配置片段,這段配置需要註釋掉,否則在我們共享完目錄後,會連用戶的家目錄一起顯示出來。
[test] 這是共享的名字,也就是你從windows登錄到共享服務器後看到的名字。
comment =Public Stuff #共享描述
path= /gongxiang #這時你共享的路徑
public = no #等於yes的時候表示所有人可以看到gongxiang這個目錄裏面的東西。等於no的時,所有人不能看到gongxiang這個目錄,需要用戶名和密碼才能看到。
read only = no #是否有寫權限 no 代表有寫權限
valid users = test1,test2
#有效的用戶,就是能通過驗證的用戶,但是隻有寫權限。@組名錶示授權一個組
write list = test1 #具有寫權限的用戶。
directory mask = 0755 #共享用戶上傳文件的權限
create mask = 0644 #創建子目錄的權限
特別注意:在配置某個共享文件需要用戶驗證用戶的時候,要是要配置寫權限,配置文件和chmod 777 要同時開啓,才能生效。讀權限只要配置器其中一個改成讀就可以了。
五、實現匿名用戶訪問
創建測試文件
mkdir/gongxiang
1、將samba的安全級別改爲share 即:
vim /etc/samba/smb.conf
security = share
2、設置共享目錄
[test]
comment = testfile
path = /gongxiang
public = yes
read only = no
3、訪問測試文件
你的samba的服務器是多少,訪問的IP就寫多少
圖1
圖2
然後就可以再test目錄下創建文件了。
六、實現訪問驗證登陸
1、將samba的安全級別改爲share 即:
vim /etc/samba/smb.conf
security = user
2、設置共享目錄權限
[test]
comment = testfile
path = /gongxiang
public = no
#read only = no 這一條配置可以去掉
valid users = a,b 僅允許哪些用戶對該目錄有操作的權限,默認也只有 r 的權限。其他用戶沒有任何權限。
write list = b 哪些用戶可以有寫權限
重啓服務
servicesmb restart
3、創建共享用戶
爲了區別linux主機中系統用戶,通常將用於訪問samba共享資源的用戶成爲共享用戶。Samba服務器使用獨立的共享賬號數據文件,其中的賬號名稱必須有與它同名的系統用戶相對應。共享用戶的密碼和系統用的密碼可以不一致。
(1)創建系統用戶
useradd -M -S /sbin/nologin a
useradd -M -S /sbin/nologin b
(2)創建系統用戶對應的samba共享用戶
pdbedit -au a
pdbedit -au b
刪除的用戶,命令如下
pdbedit -xu 用戶名
(3)查看samba系統用戶
[root@Centos2 home]# pdbedit -L
a:505:
b:506:
測試登陸
圖1
圖2
注意:在windows中用某一用戶訪問過samba服務器後,登陸的用戶會有驗證緩存,所以切換用戶訪問的時候需要清除緩存。命令如下
在windwos的命令行提示符中輸入:
net use */del 即可清除緩存
需要多清楚兩遍
在次訪問的時候需要手動輸入訪問地址:
\\samba服務器的IP地址
如果還有緩存的話,重啓解決
七、實現虛擬用戶訪問
共享賬號映射(別名)
它可以將一個共享用戶映射成多個不同的用戶,這樣我們就可以通過共享用戶的別名和密碼就能訪問授權的資源了。保證了系統安全性。
(1)samba共享用戶的映射配置文件在/etc/samba/smbusers
vim/etc/samba/smbusers
格式如下:
共享用戶名 = 別名1 別名2 別名3
例如: a = test1 test2test3
(2)vim/etc/smb/smb.conf
在全局配置裏添加一條
username map = /etc/samba/smbusers
重啓服務
service smb restart
注意:在windows中用某一用戶訪問過samba服務器後,登陸的用戶會有驗證緩存,所以切換用戶訪問的時候需要清除緩存。命令如下
在windwos的命令行提示符中輸入:
net use */del 即可清除緩存
需要多清楚兩遍
在次訪問的時候需要手動輸入訪問地址:
\\samba服務器的IP地址
如果還有緩存的話,重啓解決
(3).訪問地址限制
在samba.conf 中的全局配置中配置
hostsallow = 192.168.3.1 或者是 hosts deny= 192.168.3.1
訪問地址限制一般用於全局配置部分,也可以用於某個具體的共享配置段部分。限制對象可以是主機名、ip地址或者 是網絡段地址(省去主機位部分),多個地址之間以逗號或是空格分隔。