SAMBA服務(wù)的產(chǎn)生
在早期的網(wǎng)絡(luò)世界中,檔案數(shù)據(jù)在不同主機之間的傳輸大多是使用FTP服務(wù),但是FTP服務(wù)傳輸檔案有一些小小的問題,那就是我們無法直接修改主機上面的檔案數(shù)據(jù),也就是說我們?nèi)绻胍薷哪硞€檔案的數(shù)據(jù)時,就必須將該檔案的服務(wù)器下載后才能修改,這樣就很麻煩了。其實解決這個問題也很簡單,NFS服務(wù)就很好的解決檔案數(shù)據(jù)不能直接修改的問題,因為NFS服務(wù)是直接將共享目錄掛載到客戶端的機器上,那么共享目錄就好像成了自己的目錄一樣,共享數(shù)據(jù)的使用自然就很方便,但是,NFS也有一些小小的問題,它僅能使Unix Like的機器相互分享。那么我要是需要Windows與Unix-Like這兩個不同的平臺相互分享呢?那該怎么辦?也就是說,F(xiàn)TP服務(wù)實現(xiàn)了跨平臺分享,卻無法修改共享數(shù)據(jù);NFS解決了共享數(shù)據(jù)的修改問題,卻沒辦法實現(xiàn)跨平臺的共享。所以,SAMBA服務(wù)也就隨著需要產(chǎn)生了。 它綜合了FTP和NFS的有點,既實現(xiàn)了跨平臺的傳輸,還滿足了修改數(shù)據(jù)的功能。
SAMBA服務(wù)的配置文件
samba的設(shè)定流程
- 服務(wù)器整體設(shè)定方面:在smb.conf當(dāng)中設(shè)定好工作組、NetBIOS主機名、密碼使用狀態(tài)(無密碼分享或 本機密碼)等等;
- 規(guī)劃準(zhǔn)備分享的目錄參數(shù):在smb.conf內(nèi)設(shè)定好預(yù)計要分享的目錄或裝置以及可供使用的賬號數(shù)據(jù);
- 建立所需要的文件系統(tǒng):根據(jù)步驟2的設(shè)定,在linux文件系統(tǒng)當(dāng)中建立好分享出去的檔案或裝置,以及相關(guān)的權(quán)限參數(shù)
- 建立可用samba的賬號:根據(jù)步驟2的設(shè)定,建立所需的linux實體賬號,再一pdbedit建立使用的samba的密碼
- 啟動服務(wù):啟動samba的smbd,nmbd服務(wù),開始運轉(zhuǎn)。
samba服務(wù)的配置文件
由上述的設(shè)定流程,可以看出samba服務(wù)的配置文件為服務(wù)搭建起到了導(dǎo)向的作用,那么我就先來了解以下samba的基礎(chǔ)配置。
- smb.conf繼承了.ini文件的格式,用[ ]分成了不同的部分
- 全局設(shè)置:[global] 服務(wù)器通用或全局設(shè)置的部分
- 特定共享設(shè)置:[homes] 用戶的家目錄共享;[printers] 定義打印機資源和服務(wù);[sharename] 自定義的共享目錄配置。
- 宏定義:
符號 | 釋義 | 符號 | 釋義 |
---|---|---|---|
%m | 客戶端主機的NetBIOS名 | %M | 客戶端主機的FQDN |
%H | 當(dāng)前用戶家目錄路徑 | %U | 當(dāng)前用戶的用戶名 |
%g | 當(dāng)前用戶所屬組 | %h | samba服務(wù)器的主機名 |
%L | samba服務(wù)器的NetBIOS名 | %I | 客戶端主機的IP |
%T | 當(dāng)前的日期和時間 | %S | 可登錄的用戶名 |
samba服務(wù)器全局配置
- workgroup 指定工作組名稱
- server string 主機注釋信息
- netbios name 指定NetBIOS名
- interfaces 指定服務(wù)偵聽接口和ip
- hosts allow 可用“,”,空格,或tab分隔,默認(rèn)允許所有主機訪問,也可在每個共享獨立配置。
- hosts deny 拒絕指定主機訪問
- config file = /etc/samba/conf.d/%U 用戶獨立的配置文件
- Log level = 2 日志級別,默認(rèn)為0,不記錄日志
- max log size = 50 日志文件達(dá)到50k,將輪循rotate,單位KB
- passdb backend = tdbsam 密碼數(shù)據(jù)庫格式
“samba服務(wù)共享目錄配置”
- 每個共享目錄應(yīng)該有獨立的[ ]部分
- [共享名稱] 遠(yuǎn)程網(wǎng)絡(luò)看到的共享名稱
- comment 注釋信息
- path 所共享的目錄路徑
- public 能否被guest訪問的共享,默認(rèn)為no,和guest ok類似
- browsable 是否允許所有用戶瀏覽此共享,默認(rèn)為yes,no為隱藏
- writeable = yes 可以被所有用戶讀寫,默認(rèn)為no
- read only = no 和 writeable = yes 等價,如與以上設(shè)置發(fā)生沖突,放在后面的設(shè)置生效,默認(rèn)只讀
- write list 三種形式:用戶,@組名(如writeable=no,列表中用戶或組可讀寫,不在列表中用戶只讀)
- valid users 特定用戶才能訪問該共享,如為空,將允許所有用戶訪問,用戶名之間用空格分隔
SAMBA服務(wù)的搭建
基礎(chǔ)的SAMBA服務(wù)搭建
要求: 在現(xiàn)有的Linux上搭建一個samba服務(wù),共享/app下的smbtest目錄。
在搭建服務(wù)之前,我們需要預(yù)先安裝我們需要的軟件
- samba:這個軟件主要提供了SMB服務(wù)器所需的各項服務(wù)程序(smbd及nmbd)以及其他與SAMBA相關(guān)的logrotate配置文件及開機默認(rèn)選項檔案等
- samba-common:這個軟件提供的則是服務(wù)器與客戶端都會使用到的數(shù)據(jù),包括SAMBA的主要配置文件(smb.conf)、語法檢驗指令(testparm)等等;
安裝完所需的軟件之后,我們便可以正式開始搭建SAMBA服務(wù)了
- 在samba服務(wù)器上安裝samba包
yum - y install samba
- 創(chuàng)建samba用戶和組
groupadd -r team useradd -s /sbin/mologin -G team lsy smbpasswd -a lsy useradd -s /sbin/nologin qjc smbpasswd -a qjc
- 創(chuàng)建samba共享目錄,并設(shè)置SElinux
mkdir ./app/smbtest chgrp team /app/smbtest setfacl -m g:team:rwx /app/smbtest/ setfacl -m u:qjc:rwx /app/smbtest/ chcon -Rt samba_share_t /app/smbtest
- samba服務(wù)器配置
vim /etc/samba/smb.conf
啟動samba服務(wù)
windows客戶端訪問
我在上面的配置文件中簡單的設(shè)置了,使得team組的用戶對共享目錄有寫權(quán)限,而其他用戶則只可以瀏覽共享目錄,不能修改共享數(shù)據(jù),具體訪問如下圖:
- 客戶端登陸
- 以team組成員lsy身份進(jìn)入共享目錄, 則可以在目錄中創(chuàng)建,編輯文件
- 再以qjc的身份進(jìn)入共享目錄,因為沒有寫權(quán)限,所以只能訪問,創(chuàng)建文件會被拒絕
嘗試創(chuàng)建新文件時 - 同時我們再服務(wù)器端共享目錄下,可以查看到lsy用戶創(chuàng)建的文件
SAMBA服務(wù)實現(xiàn)多用戶掛載(僅CentOS7支持)
我們?nèi)岳蒙厦嬉呀?jīng)創(chuàng)建好的共享目錄lishuyang來進(jìn)行操作(ps:: 在生產(chǎn)環(huán)境中,創(chuàng)建共享目錄,建議使用LVM)。
服務(wù)端:
在服務(wù)端, 我們還需要創(chuàng)建一個普通samba用戶smbbase, 作為我們在客戶端登陸的擁有較小權(quán)限的用戶(實現(xiàn)多用戶的掛載目的就在于對共享目錄獲取更大的權(quán)限),用戶smbbase只有瀏覽共享目錄的權(quán)限
useradd -s /sbin/nologin smbbase smbpasswd -a smbbase
客戶端
- 安裝客戶端需要的軟件 cifs-utils(系統(tǒng)一般默認(rèn)安裝)
- 編輯文件,將權(quán)限較低的smbbase用戶的賬戶信息寫入
- 創(chuàng)建掛載目錄并將共享目錄掛載到本地掛載目錄上
- 進(jìn)入/app/mnt目錄下,可以發(fā)現(xiàn)已經(jīng)進(jìn)入到了共享目錄下,嘗試用smbbase用戶修改文件(smbbase沒有寫權(quán)限,所以一定被拒絕寫入)
- 切換到用戶lsy,執(zhí)行如下操作
cifscreds add 192.168.100.127
- 嘗試修改文件(用戶lsy擁有寫權(quán)限,若能修改,則多用戶掛載實驗成功)
ps:有幾個只需要注意的問題:
1,防火墻要關(guān)閉, # service iptables stop
2,注意共享目錄的權(quán)限設(shè)置
3,要設(shè)置成不需要用戶名密碼直接訪問,需要修改配置文件,將security設(shè)置成security = share。
更多Samba相關(guān)教程見以下內(nèi)容:
CentOS 7.2 安裝配置Samba服務(wù)器 http://www.sfodin.cn/Linux/2017-03/141390.htm
VMWare 虛擬機 Ubuntu 雙網(wǎng)卡 訪問 samba 速度 翻倍 http://www.sfodin.cn/Linux/2013-06/85445.htm
samba安裝使用圖解 http://www.sfodin.cn/Linux/2017-03/141254.htm
CentOS7.2下源碼搭建Samba文件服務(wù)器[原創(chuàng)] http://www.sfodin.cn/Linux/2017-06/144557.htm
如何在Ubuntu 16.04上安裝和配置Samba服務(wù)器以進(jìn)行文件共享 http://www.sfodin.cn/Linux/2017-11/148194.htm
CentOS 7下Samba服務(wù)安裝與配置詳解 http://www.sfodin.cn/Linux/2017-11/148354.htm
Red Hat 6.5 下 Samba服務(wù)器搭建 http://www.sfodin.cn/Linux/2017-07/145747.htm
如何在Ubuntu 17.10上使用System-Config-Samba http://www.sfodin.cn/Linux/2018-01/150493.htm