1. 程式人生 > >【RHEL 7】Samba服務實現檔案共享

【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。

 

參考於:https://www.linuxprobe.com/chapter-12.html