第一章 Samba簡介
Samba是一個能讓Linux系統應用Microsoft網絡通訊協議的軟件,SMB(Server Message Block)服務器消息塊
Samba最大的功能是可以用於Linux與windows系統直接的文件共享和打印共享,既可以用於Windows與linux之間的文件共享也可以用於linux與linux之間的資源共享
基於客戶機/服務器的協議,因而一台Samba服務器既可以充當文件共享服務器,也可以充當一個Samba客戶端
Samba在windows下使用的是NetBIOS協議,要使用linux下共享出來的文件,要確認windows系統安裝了NetBIOS協議
組成Samba運行的有兩個服務,一個是SMB,另一個是NMB;SMB是Samba 的核心啟動服務,主要負責建立 Linux Samba服務器與Samba客戶機之間的對話, 驗證用戶身份並提供對文件和打印系統的訪問,只有SMB服務啟動,才能實現文件的共享,監聽139 TCP端口;而NMB服務是負責解析用的,類似與DNS實現的功能,NMB可以把Linux系統共享的工作組名稱與其IP對應起來,如果NMB服務沒有啟動,就只能通過IP來訪問共享文件,監聽137和138 UDP端口。
例如,某台Samba服務器的IP地址為192.168.126.15,對應的工作組名稱為MYWORKGROUP,那么在Windows的IE瀏覽器輸入下面兩條指令都可以訪問共享文件。其實這就是Windows下查看Linux Samba服務器共享文件的方法。
\\192.168.126.15\共享目錄名稱
\\MYWORKGROUP\共享目錄名稱
Samba服務器可實現如下功能:WINS和DNS服務; 網絡瀏覽服務; Linux和Windows域之間的認證和授權; UNICODE字符集和域名映射;滿足CIFS協議的UNIX共享等。
第二章 安裝Samba服務
# yum install -y samba
# rpm -qa |grep samba
samba-4.10.4-11.el7_8.x86_64 //服務器端軟件,主要提供samba服務器的守護程序,共享文檔,日志的輪替
samba-libs-4.10.4-11.el7_8.x86_64
samba-common-tools-4.10.4-11.el7_8.x86_64
samba-common-libs-4.10.4-11.el7_8.x86_64 //主要提供samba服務器的設置文件與設置文件語法檢驗程序testparm
samba-client-libs-4.10.4-11.el7_8.x86_64 //客戶端軟件,主要提供linux主機作為客戶端時,所需要的工具指令集
samba-common-4.10.4-11.el7_8.noarch
# systemctl enable smb
第三章 配置Samba服務
3.1 配置文件介紹
主配置文件 /etc/samba/smb.conf
主配置文件由兩部分組成:
Global Settings:與Samba服務整體運行環境有關的選項,它的設置項目是針對所有共享資源的
Share Definition:針對共享目錄個別的設置,只對當前的共享資源起作用
3.2 pdbedit用法
pdbedit用於在samba服務器中創建用戶:
它的用法包括
pdbedit -a username:新建Samba賬戶。
pdbedit -x username:刪除Samba賬戶。
pdbedit -L:列出Samba用戶列表,讀取passdb.tdb數據庫文件。
pdbedit -Lv:列出Samba用戶列表詳細信息。
pdbedit -c “[D]” -u username:暫停該Samba用戶賬號。
pdbedit -c “[]” -u username:恢復該Samba用戶賬號。
3.3 簡單用法示例
# 編輯配置文件
# vim /etc/samba/smb.conf
#在最后添加 示例:
[user1] #共享名稱database
comment = 共享目錄 #描述信息
path = /data #共享目錄
public = no #關閉所有人可見
writable = yes #是否有寫權限
# mkdir /data
# chmod -Rf 777 /data
#添加用戶並設置密碼:
# groupadd user1 -g 6000
# useradd user1 -u 6000 -g 6000 -s /sbin/nologin -d /dev/null
# pdbedit -a user1
#刪除用戶:
# pdbedit -x user1
# pdbedit -L
測試結果:
//10.0.0.7

第四章 定時備份Samba目錄
samba服務器:
echo "backup@123" >/etc/rsync.password
chmod 600 /etc/rsync.password
# 備份腳本:
# vim /server/scripts/samba_backup.sh
#!/bin/bash
cd /data
find ./ -type f -mtime -1 ! -name "finger*"|xargs md5sum >./finger.txt
rsync -aqrtopg --delete /data/ rsync_backup@10.0.0.241::samba --password-file=/etc/rsync.password
# 定時任務:
crontab -e
* 1 * * * /bin/bash /server/scripts/samba_backup.sh &>/dev/null
備份服務器:
# mkdir -p /server/scripts/
# chown -R rsync:rsync /data/samba_bak
# vim /server/scripts/samba_bak_ser.sh
#!bin/bash
Backup_dir="/data/samba_bak"
cd $Backup_dir
# check backup data ,md5sum -c根據已生成的md5值,對文件進行校驗,MD5文件與待驗證的文件在同一個目錄中
find ./ -type f -name "finger.txt"|xargs md5sum -c >/tmp/check.txt
# send check mail
mail -s "check backup info for $(date +%F -d -"1day") data" nishi1281@163.com </tmp/check.txt
# 定時任務:
crontab -e
* 1 * * * /bin/bash /server/scripts/samba_bak_ser.sh &>/dev/null
