samba檔案共享服務
簡介:
在windows網絡環境中,主機之間進行檔案和列印機共享是通過微軟自己的smb(server message block,服務消息塊)/cifs(common internet file system,通用網際網路檔案系統)私有網絡協定實作的.
samba是著名的開源軟體項目之一,它在linux/unix系統中實作了微軟的smb/cifs網絡協定,使得跨平台的檔案共享變得更加容易.
1.samba軟體的組成:
samba:服務端軟體
samba-client:用戶端軟體
samba-common:用于提供服務端和用戶端程式的公共元件
samba-swat:用于提供web接口的圖形管理程式(遠端裝samba時用到)

安裝samba包:
2.samba服務的程式元件:
samba伺服器提供smbd 、nmbd兩個服務程式,用來完成不同的功能.
smbd: 負責為客戶機提供伺服器中共享資源(目錄和檔案等)的通路;
nmbd:負責提供基于 netbios協定的主機名稱解析,以便為windows網絡中的主機進行查詢服務
啟動samba服務: /etc/rc.d/init.d/smb start 或者 service smb start
啟動smb服務後,會自動加載smbd和nmbd兩個程式元件.使用netstat指令可以驗證服務程序狀态:
smbd程式負責監聽tcp協定的139端口(smb協定),445端口(cifs協定);
nmbd服務程式負責監聽udp協定的137-138端口(netbios協定)
3.主配置檔案smb.conf
samba服務的配置檔案: /etc/samba目錄中
主配置檔案: smb.conf
(以”#”号開始的行表示注釋性的文字; 以”;”開始的行表示配置樣例)
eg:使用grep指令過濾出smb.conf檔案中的有效配置.
grep -v "#" /etc/samba/smb.conf | grep -v "^;" | grep -v "^$"
注解:
[ global ]全局設定:這部配置設定置項的内容對整個samba伺服器都有效.
[ homes ]宿主目錄共享設定:設定linux使用者的預設共享,對應使用者的宿主目錄;當使用者通路伺服器中與自己使用者名同名的共享目錄時,通過驗證後将會自動映射到該使用者的宿主檔案夾中
[ printers ]列印機共享設定:如果需要列印機裝置,可以在這部分進行設定
samba伺服器的常見配置項及含義說明:
workgroup
所在工作組名稱
server string
伺服器描述資訊
security
安全級别,可用值如下:share、user、server、domain
log file
日志檔案位置,“%m”變量表示客戶機位址
max log size
日志檔案的最大容量,機關為kb
passwd backend
設定共享賬戶檔案的類型
comment
對共享目錄的注釋、說明資訊
path
共享目錄在伺服器中對應的實際路徑
browseable
該共享目錄在“網路上的芳鄰”中是否可見
guest ok
是否允許所有人通路,等效于“public”
writable
是否可寫,與read only的作用相反
若要相容舊版的samba密碼檔案,應設定passwd backend = smbpasswd
samba伺服器提供了一個配置檔案檢查工具——testparm程式,使用testparm工具可以對smb.conf配置檔案的正确性進行檢查,如果發現有錯誤将會進行提醒:
eg:當配置檔案中的public共享設定未指定檔案夾路徑時會報錯:
建構檔案共享伺服器:
可匿名通路的共享:
可匿名通路的共享适用于公開的資源分享,一般隻建議提供隻讀通路。
修改主配置檔案以便支援匿名共享檔案夾:
将預設的安全級别修改為share ;添加一段共享目錄配置。
eg:将本地挂載CD光牒目錄/media/cdrom釋出為共享檔案夾,共享名為rhel5:
從客戶機通路并驗證
需使用者驗證的共享:
步驟:
将預設的安全級别修改為share;添加共享目錄配置,指定使用者權限;需先建立授權的共享賬戶
建立samba使用者資料庫
預設資料庫檔案位于:/etc/samba/passdb.tdb
pdbedit -a -u wzx添加共享使用者(-a:添加-u:指定使用者名稱)
pdbedit -l 列出所有的samba共享使用者
pdbedit -x -u 删除samba使用者
設定使用者通路授權:
建立測試目錄:
修改smb.conf配置檔案,添加名為tools的共享目錄:
重新加載smb.conf檔案,或重新開機smb服務:
确定目錄通路授權(将檔案夾的權限設定為777以便u1使用者能夠讀取、寫入):
設定上傳檔案和目錄的預設權限:
使用者映射及通路位址限制:
共享賬号映射(别名):
samba共享賬号的映射檔案預設位于/etc/samba/smbusers
格式:共享使用者名 = 别名1 别名2 别名3 …
該檔案中預設已經添加了兩條相容windows客戶機的别名映射:
注解:
當客戶機以使用者administrator或admin通路共享時,samba伺服器将視為本機的共享使用者root;
當使用者guest、pcguest等被映射為共享使用者nobody
eg:為現有的samba共享使用者u1指定兩個别名hello、welcome:
設定好别名記錄後,修改修改主配置檔案後重新開機服務以便正常啟用賬号映射功能:
通路位址限制:
一般用在全局配置[global]部分
hosts allow配置項:僅允許特定的客戶機
hosts deny配置項:僅拒絕特定的客戶機
客戶機位址表示形式:以空格分隔多個位址
主機名或ip位址,例如:192.168.168.11 或者prtsvr
網絡段位址(省去主機部分),例如:173.17. 或者173.17.0.0/255.255.0.0
通路共享檔案夾:
使用smbclient 通路共享檔案夾:
查詢目标主機的共享資源清單:
登入并通路共享檔案夾
格式: //主機位址/共享名
eg:連接配接到samba伺服器192.168.10.1中名為rhel的匿名共享目錄:
eg:使用共享使用者u1(或别名hello,welcome)通路tools共享:
ls :用于清單目錄;pwd :檢視目前路徑
get 和mget:用于下載下傳檔案;put 和mput用于上傳檔案
?或help :檢視各種交換指令的線上幫助資訊
使用mount 挂載共享檔案夾:
格式:通過”//主機位址/共享名”指定共享檔案夾的位置,并指定本地的挂載點的目錄
eg:将samba伺服器192.168.10.1中的tools共享目錄挂載到本地的/media/smbdir/檔案夾以便共享使用者u1進行驗證:
samba服務就此成功!
歡迎關注微信公衆号:小溫研習社