【RHEL 7】Samba服務實現檔案共享
1987年,微軟公司和英特爾公司共同制定了SMB(Server Messages Block,伺服器訊息塊)協議,旨在解決區域網內的檔案或印表機等資源的共享問題,這也使得在多個主機之間共享檔案變得越來越簡單。到了1991年,當時還在讀大學的Tridgwell為了解決Linux系統與Windows系統之間的檔案共享問題,基於SMB協議開發出了SMBServer服務程式。這是一款開源的檔案共享軟體,經過簡單配置就能夠實現Linux系統與Windows系統之間的檔案共享工作。當時,Tridgwell想把這款軟體的名字SMBServer註冊成為商標,但卻被商標局以SMB是沒有意義的字元而拒絕了申請。後來Tridgwell不斷翻看詞典,突然看到一個拉丁舞蹈的名字—Samba,而且這個熱情洋溢的舞蹈名字中又恰好包含了“SMB”,於是Samba服務程式的名字由此誕生。Samba服務程式現在已經成為在Linux系統與Windows系統之間共享檔案的最佳選擇。
服務端配置
1.安裝Samba服務程式samba
[[email protected] ~]# yum install -y samba
2.pdbedit命令建立訪問共享資源的Samba賬戶(使用者必須在本地系統中已存在)
[[email protected] ~]# id hinzer
uid=1000(hinzer) gid=1000(hinzer) groups=1000(hinzer)
[[email protected] ~]# pdbedit -a -u hinzer
3.建立用於共享的目錄 /home/database,並將目錄的屬主和屬組改成samba使用者
[[email protected] ~]# mkdir /home/database
[[email protected] ~]# chown -Rf hinzer:hinzer /home/database/
4.修改檔案的SELinux安全上下文,並立即生效
[[email protected] ~]# semanage fcontext -a -t samba_share_t /home/database
[[email protected] ~]# restorecon -Rv /home/database
5.設定SELinux域,允許Samba服務訪問普通家目錄
[[email protected] ~]# getsebool -a | grep samba
[[email protected] ~]# setsebool -P samba_enable_home_dirs=on
6.修改主配置檔案
[[email protected] ~]# vim /etc/samba/smb.conf
[global]
workgroup = MYGROUP
server string = Samba Server Version %v
log file = /var/log/samba/log.%m
max log size = 50
security = user
passdb backend = tdbsam[database]
comment = haha
path = /home/database
public = no
writable = yes
7.重啟服務並加入啟動項,並清空iptables防火牆的預設策略
[[email protected] ~]# systemctl restart smb
[[email protected] ~]# systemctl enable smb
[[email protected] ~]# iptables -F
[[email protected] ~]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
客戶端配置
1.安裝檔案共享服務的軟體包cifs-utils
[[email protected] slaves]# yum install -y cifs-utils
2.編輯認證檔案,並將檔案許可權減至600
[[email protected] ~]# vim auth.smb
username=hinzer
password=1
domain=MYGROP
[[email protected] ~]# chmod 600 auth.smb
3.建立掛載目錄,並使之開機自動掛載,立即生效
[[email protected] ~]# mkdir /database
[[email protected] ~]# vim /etc/fstab
//192.168.10.10/database /database cifs credentials=/root/auth.smb 0 0
[[email protected] ~]# mount -a
驗證
這個時候就可以實現共享目錄了。伺服器對應的/home/database;客戶端對應的是/database。