第2章-samba檔案共享服務
一,samba服務基礎
在windows網絡環境中,主機之間進行檔案和列印共享是通過微軟公司的smb/cifs網絡協定實作的。
(1),samba軟體的組成
1,samba軟體包的組成
服務端軟體“samba”
用戶端軟體“samba-client”
服務端和用戶端程式的公共元件“samba-common”
web接口的圖形管理程式軟體“samba-swat”
2,sabma服務的程式元件
〖smbd〗
#負責為客戶機提供伺服器中的共享資源(目錄和檔案等)的通路
#負責監聽tcp的協定的139端口(smb協定),445端口(cifs協定)
〖nmbd〗
#負責提供基于netbios協定的主機名解析,以便為windows網絡中的主機進行查詢服務
#負責監聽udp協定的137-138端口(netbios協定)
【啟動服務】
#service smb start
#腳本檔案:/etc/rc.d/init.d/smb
(2),主配置檔案smb.conf
檔案位置:/etc/samba/smb.conf
〖global〗全局配置:
這部配置設定置項的内容對整個samba伺服器都有效
〖homes〗宿主目錄共享設定:
設定linux使用者的預設共享,對應使用者的宿主目錄,當使用者通路伺服器中與自己使用者名同名的共享目錄時,通過驗證後将會自動映射到該使用者的宿主目錄中
〖printers〗列印共享設定:
如果需要共享列印裝置,可以在這部分進行配置
【samba伺服器的常見配置項及含認說明】
workgroup:設定伺服器所在的工作組名稱
server string:設定伺服器的說明文字,用于描述samba伺服器
security:設定伺服器的安全級别,share(可匿名通路)、user(需要使用者名及密碼)
server(指定另一台伺服器來驗證使用者名及密碼)
domain(由windows域控制器驗證使用者名及密碼)
log file:設定samba伺服器的日志檔案,預設儲存在/var/log/samba/目錄中
comment:設定對應共享目錄的注釋、說明資訊
path:設定對應共享目錄在伺服器中的檔案夾路徑
browseable:使用者的宿主目錄,設定該目錄在“網路上的芳鄰”中是否可見,“no”表示隐藏享目錄
guest ok:與“public”作用相同,設定是否所有人都可以通路共享目錄
writable:與“read only”作用相反,設定該共享目錄是否可寫
二,建構檔案共享伺服器
(1),可匿名通路的共享
#可匿名通路的共享适用于公開的資源分享,一般隻建議提供隻讀通路
#配置檔案“smb.conf”中調整:
a,可以将預設的安全級别修改為share
b,添加一段共享目錄配置
(2),需使用者驗證的共享
1,建立samba使用者資料庫
#samba伺服器使用獨立的共享賬号資料庫檔案,其中的賬号名稱必須有與它同名的系統使用者相對應
#共享使用者的密碼是額外設定的,可以與系統使用者的密碼不一樣
#samba共享使用者的賬号資料庫檔案預設位于“/etc/samba/passdb.tdb”
【添加、編輯共享使用者】
pdbedit -a -u 使用者名 /添加使用者為samba共享使用者
-a:表示添加
-u:表示指定使用者名稱
pdbedit -l /列出所有samba使用者
pdbedit -vl 使用者名 /列出指定使用者,輸出詳細資訊
pdbedit -x -u 使用者名 /删除指定samba使用者
2,設定使用者通路權限
#将“security”安全級别設為“user”
#使用者授權設定由“valid users、write list”配置項指定
#授權多個共享使用者時,以逗号或空格進行分隔
#授權組,可以使用“@組名”的格式
【案例:将本地目錄/opt/mytools釋出為共享目錄,共享名為“tools”】
要求共享使用者u1、u2能夠通路,其中u2使用者具有寫入權限
第一步:建立共享使用者u1、u2,确認共享目錄
pdbedit -a -u u1
pdbedit -a -u u2
mkdir /opt/mytools
第二步:修改smb.conf配置檔案,添加名為tools的共享目錄配置段
vim /etc/samba/smb.conf
[tools]
path=/opt/mytools
public=no
read only=no
valid users=u1,u2
write list=u2
第三步,啟動smb服務
service smb restart
3,确定目錄通路權限
第一步,chmod 777 /opt/mytools /先把本地目錄權限放開
第二步,修改配置檔案“smb.conf”
driectory mask=0755 /上傳目錄權限項
create mask=0644 /上傳檔案權限項
(3),使用者映射及通路位址限制
1,共享賬号映射(别名)
第一步,修改映射檔案:/etc /smba/smbusers
格式:共享使用者名=别名1 别名2 别名3…
如:root=administrator admin
第二步,修改主配置檔案,在全局裡添加選項
vim /etc/samba/smb.conf
[global]
username map=/etc/samba/smbusers
第三步,重新載入smb服務
service smb reload
2,通路位址限制
#hosts allow:用于指定僅允許通路共享的客戶機位址
#hosts deny:用于指定僅拒絕通路共享的客戶機位址
#通路位址限制一般應用于[global]全局配置部分,也可以應用于某個具體的共享配置段部分
#限制對象可以是主機名,ip位址或網段位址(省去主機部分),多個位址之間以逗号或空格進行分隔
例如:【global】
hosts allow=192.168.1 173.17.
三,通路共享檔案夾
(1),使用smbclient通路共享檔案夾
需要安裝samba-client軟體包
1,查詢目标主機的共享資源清單
smbclient -l 共享ip
例如: smbclient -l 192.168.1.1
2,登入并通路共享檔案夾
smbclient //主機位址/共享名
例如: smbclient //192.168.1.1/tools /匿名通路
smbclient -u 使用者名 //192.168.1.1/tools /使用者驗證
(2),使用mount挂載共享檔案夾
mount -o username=使用者名 //主機位址/共享名 /挂載點
例如: mount -o username=u1 //192.168.1.1/tools /opt