Samba簡介ios
Samba官網:http://www.samba.org
SMB(Server Messages Block,信息服務塊)是一種在局域網上共享文件和打印機的一種通訊協議,它爲局域網內的不一樣計算機之間提供文件及打印機等資源的共享服務。SMB協議是客戶機/服務器型協議,客戶機經過該協議能夠訪問服務器上的共享文件系統、打印機及其餘資源。經過設置「NetBIOS over TCP/IP」使得Samba不但能與局域網絡主機分享資源,還能與全世界的電腦分享資源。windows
啓動服務:# /etc/rc.d/init.d/smb start安全
Samba有兩個守護進程:smbd和nmbd
1.smbd監聽139TCP端口 smbd進程的做用是處理SMB請求包,負責用戶驗證和文件共享;
2.nmbd監聽137和138UDP端口 nmbd進程的做用是處理瀏覽共享和計算機名稱解析;服務器
1、查看samba服務狀態
# rpm -qa | grep samba
samba-common-3.0.33-3.39.el5_8 --------> 這個是samba通用配置包;
samba-3.0.33-3.39.el5_8 ---------------> 這個是samba主服務包,若是沒有須要安裝上;
samba-client-3.0.33-3.39.el5_8 --------> 這個是samba客戶端工具包;網絡
2、安裝samba主服務
# yum install -y samba工具
3、查找samba配置文件所在目錄
# rpm -ql samba-common | grep smb.conf
/etc/samba/smb.conf ---------------------------------> 配置文件
/usr/share/man/man5/smb.conf.5.gzspa
或:
# rpm -qc samba-common
/etc/samba/lmhosts
/etc/samba/smb.conf ---------------------------------> 配置文件
/etc/security/pam_winbind.conf日誌
或:
# find /etc/ -name smb*
/etc/gnome-vfs-2.0/modules/smb-module.conf
/etc/rc.d/init.d/smb --------------------------------> 啓動腳本
/etc/samba/smb.conf ---------------------------------> 配置文件
/etc/samba/smbusersserver
4、配置smb.conf文件
# cp /etc/samba/smb.conf /etc/samba/BAK.smb.conf 先備份
# vi /etc/samba/smb.conf 編輯接口
1.配置文件主要結構:
[global] 設置全局環境選項
# ----------------------- Network Related Options -------------------------
# 工做組或域:
workgroup = MYGROUP
# Samba服務器描述:
server string = Samba Server Version %v
# netbios名稱:
; netbios name = MYSERVER
# 指定使用的網絡接口卡
; interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24
# 容許訪問的IP網段列表(★容許優先):
; hosts allow = 127. 192.168.12. 192.168.13.
# 禁止訪問的IP網段列表(★容許優先):
; host deny = 192.168.190
注:此處若是某IP段被同時指定了容許和禁止,則最終結果「很違背常規」,是容許優先。
# --------------------------- Logging Options -----------------------------
# 按每服務器模式切割日誌文件
# logs split per machine
# 指定日誌文件位置:
log file = /var/log/samba/%m.log
# 指定每一個日誌文件最大字節數
# max 50KB per log file, then rotate
# 日誌文件最多佔用空間:
max log size = 50
#============================ Share Definitions ==============================
[homes] 設置用戶宿主目錄共享(若是不須要用戶經過smb訪問本身的宿主目錄,將此區塊總體註釋掉便可;;;)
[printers] 設置打印機共享(一般不用,將此區塊總體註釋掉便可;;;)
2.【實驗】添加個人共享目錄:
可參考[homes]區塊,在配置文件的末尾添加共享目錄區塊配置信息:
####################### 設置個人共享目錄 ##########################
[wwwroot]
# 指定個人共享目錄描述
comment = wwwroot directory
# 指定共享目錄路徑
path = /wwwroot
# 設置共享目錄對全部用戶是否可見:
browseable = yes
# 設置共享目錄是否可寫權限(取與Linux系統對目錄權限的交集!邏輯and)
writable = yes
# 設置有效訪問用戶(多個用戶空格分開,%S 表示匹配全部用戶)
valid users = martin jack
###################################################################
3.檢查配置文件有無語法錯誤:
# testparm
5、查找smb服務啓動腳本 並啓動之
1.查找smb服務啓動腳本
# find /etc/ -name smb
/etc/rc.d/init.d/smb ------------------------> 啓動腳本
或:
# rpm -ql samba | grep smb
/etc/rc.d/init.d/smb ------------------------> 啓動腳本
/etc/samba/smbusers
/usr/bin/mksmbpasswd.sh
/usr/bin/smbcontrol
/usr/bin/smbstatus
2.啓動SMB服務:
# /etc/rc.d/init.d/smb start
或:
# service smb start
3.設置開機自啓動:
# chkconfig --levels 235 smb on
6、添加smb用戶【必須是系統中已存在的用戶,假如系統中已經有了一個名爲martin的用戶】,並設置密碼
# smbpasswd -a martin
New SMB password:
Retype new SMB password:
主要選項解析:
-a add user 表示添加SMB用戶
-d disable user 表示禁用SMB用戶
-e enable user 表示開啓SMB用用戶
-x delete user 表示刪除SMB用戶
注:不加任何參數表示修改現已有SMB用戶的密碼
7、windows客戶端登陸:\\192.168.1.xxx
8、沒法登陸或沒法訪問故障排除:
1.若是SELinux阻止了訪問:
首先查找過濾SELinux關於samba的策略選項:
# setsebool -a | grep samba
找到了samba_enable_home_dirs這項,將啓設置爲on便可:
# setsebool -P samba_enable_home_dirs on
# chcon -t samba_share_t /wwwroot/
2.若是防火牆阻止了訪問,先行關閉:
# iptables -F
3.若是能夠登陸卻無寫權限(假如對用戶martin):
# setfacl -m u:martin:rwx -R /wwwroot/
# setfacl -m d:u:martin:rwx -R /wwwroot/
4.【可選】爲防止用戶刪除他人的數據文件,也可對共享目錄設置粘着位權限
# chmod o+t /wwwroot/
# chmod 1775 /wwwroot/
取消粘着位權限:
# chmod o-t /wwwroot/
# chmod 0775 /wwwroot/
9、從服務端查看當前全部登陸用戶信息:
# smbstatus
Samba version 3.0.33-3.39.el5_8
PID Username Group Machine
-------------------------------------------------------------------
23427 martin martin pc (192.168.10.1)
查看samba的日誌記錄:
# cat /var/log/samba/log.smbd
10、清除windows本地會話
方法1: Win7系統找到: 控制面板 -> 用戶賬戶和家庭安全 -> 憑據管理器
選擇對應的憑據,而後點擊「從保管庫中刪除」
方法2: 開始 -> 運行cmd命令: 查看全部會話: > net use 清除全部會話: > net use * /delete /y 注:* 表示全部會話