一、Samba概述
1、概述
Samba是在Linux和Unix系統上實現SMB協議的一個免費軟件,有服務器及客戶端程序構成。SMB是一種在局域網上共享文件和打印機的一種通信協議,它爲局域網內的不同計算機之間提供文件及打印機等資源的共享服務。SMB協議是客戶機/服務器型協議,客戶機通過該協議可以訪問服務器上的共享文件系統、打印機及其他資源。通過設置“NETBIOS over TCP/IP”使得Samba不但能與局域網主機分享資源,還能與全世界的電腦分享資源。
2、協議
SMB(Server Message Block) 服務信息塊協議
CIFS (Common Internet File System) 通用互聯網文件系統
3、作用
1)分享文件與打印機服務
2)可以提供用戶登入SAMBA主機時的身份認證
3)可以進行Windows網絡上的主機名解析(Netbios name)
4、測試工具
testparm
-s 輸出所有內容
二、安裝
1、服務名:samba
2、Samba服務器的主要程序
smbd:提供對服務器中文件、打印資源的共享訪問。(端口:139 445)
nmbd:提供基於NetBIOS主機名稱的解析。(端口:137 138)
3、服務腳本
/etc/init.d/smb
4、主配置文件
/etc/samba/smb.conf
5、主配置目錄
/etc/samba
三、配置
1、smb.conf文件的配置內容簡介
[global]:全局配置
[homes]:用戶目錄共享設置
[printers]:打印機共享設置
[myshare]:自定義名稱的共享目錄設置
註釋行:以“#”號開頭的行
配置樣例行:以“;”號開頭的行
結合grep命令可以提取有效配置行
grep -v "^#" smb.conf | grep -v ";" | grep -v ^$
2、常見全局配置項的含義
workgroup:所在工作組名稱
server string:服務器描述信息,一般修改默認值,以防Samba版本信息泄漏
security:安全級別,總共有四個級別:
share 匿名訪問
user 本地Samba用戶訪問
Server 由其他服務器提供認證
domain 由域控制器提供認證(PDC)
log file:日誌文件位置,“%m”變量表示客戶機地址
max log size:日誌文件的最大容量,單位爲KB。當達到最大值則進行日誌輪替
passwd backend:設置共享賬戶文件的類型
3、常見共享目錄配置項的含義
comment:對共享目錄的註釋、說明信息
path:共享目錄在服務器中對應的實際路徑
browseable:該共享目錄在“網上鄰居”中是否可見
guest ok:是否允許所有人訪問,等效於“public = yes”
writable:是否允許所有人可寫,writable與write list 只能出現一個
read only:是否允許所有人只讀
write list:擁有寫權限的用戶列表,可以直接加用戶名,多個用戶名之間用","號隔開,也可以使用@用戶組的方式,設置用戶組
四、匿名訪問配置
[global]
workgroup = WORKGROUP #定義工作組
netbios name = wayen #定義Netbios名稱,不可與工作組的名稱相同
server string = my Samba server!! #服務器描述信息
log file = /var/log/samba/log.%m #日誌存放位置
max log size = 50 #日誌存放大小
security = share #安全級別爲share,即匿名
passdb backend = tdbsam #共享賬戶文件的類型
load printers = yes #啓動服務是加載打印機
cups options = raw #打印機啓動爲讀寫權限
[homes]
comment = home directories
browseable = no
writable = yes
[printers]
comment = all printers
path = /var/spool/samba
browseable = no
guest ok = no
wirtable = no
printable = yes
[movie] #自定義共享目錄
comment = cang #目錄描述
path = /cang #真正的目錄路徑
writable = yes #允許所有人可寫
browseable = yes #查詢可見
guest ok = yes #允許所有人訪問
客戶端測試
1)smbclient -L //IP或域名 #查看samba服務器共享的目錄
2)smbclient //IP或域名/共享目錄 #登錄Samba服務器
get 下載
put 上傳
四、本地用戶驗證
1、創建SAMBE用戶
pdbedit -a -u 用戶名(Linux系統本地用戶)
smbpasswd -a -u 用戶名
2、刪除SAMBE用戶
pdbedit -x -u 用戶名
3、查看SAMBE用戶
pdbedit -L
4、掛載SAMBE共享目錄
1)臨時掛載
mount -t cifs -o username=用戶名,passwd=密碼 原路徑 目標路徑
2)永久掛載
vim /etc/ftab
原路徑 目標路徑 cifs defaults,username=用戶名,passwd=密碼 0 0
5、ACL控制
hosts allow 允許IP訪問
hosts deny 拒絕IP訪問
EXCEPT 排除某個IP地址
eg: hosts deny 192.168.216. EXCEPT 192.168.216.15
#拒絕192.168.216網段的除了192.168.216.15之外的所有IP訪問
6、SMB別名
vim /etc/samba/smbusers
原名 = 別名 (多個別名用空格隔開)
vim /etc/samba/smb.conf
username map = /etc/samba/smbusers #開啓別名功能
7、字符集
display charset = utf8 #SAMBA服務器顯示的字符集格式
unix charset = utf8 #UNIX客戶端的字符集格式
dos charset = cp950 #WIN客戶端的big5編碼
8、常用變量
%I :顯示客戶端的IP地址
%H :顯示家目錄路徑
%T :顯示當前日期和時間
9、配置
[global]
workgroup = WORKGROUP #定義工作組
netbios name = wayen #定義Netbios名稱,不可與工作組的名稱相同
server string = my Samba server!! #服務器描述信息
log file = /var/log/samba/log.%m #日誌存放位置
max log size = 50 #日誌存放大小
security = share #安全級別爲share,即匿名
passdb backend = tdbsam #共享賬戶文件的類型
load printers = yes #啓動服務是加載打印機
cups options = raw #打印機啓動爲讀寫權限
[homes]
comment = home directories
browseable = no
writable = yes
create mode = 0664 #創建文件的權限爲0664
directory mode = 0775 #創建目錄的權限爲0775
[printers]
comment = all printers
path = /var/spool/samba
browseable = no
guest ok = no
wirtable = no
printable = yes
[music] #自定義共享目錄
comment = smbuser #目錄描述
path = /aa #真正的目錄路徑
write list = zhangsan #允許所有人可寫
browseable = yes #查詢可見
guest ok = yes #允許所有人訪問
10、客戶端測試
1)smbclient -L //IP或域名 -U 用戶名 #查看samba服務器共享的目錄
2)smbclient //IP或域名/共享目錄 -U 用戶名 #登錄Samba服務器
get 下載
put 上傳