背景:又到了幾年一次的設(shè)備更新時間了,這次淘汰下了Mac mini,一個小主機,雖然跑一些性能的應(yīng)用比較吃力,但棄之不用還是比較浪費,靈機一動,何不把它改造成一個家庭的服務(wù)器托管中心呢,重新安裝了Centos 7.4的系統(tǒng),接下來就是各種折騰了。
一、安裝Samba服務(wù)
什么是Samba服務(wù)?簡單來說就是類似于Windows上的網(wǎng)上鄰居,通過它可以實現(xiàn)多種設(shè)備訪問Linux系統(tǒng)共享的資源,Samba的安裝非常簡單,只需一個命令即可。
yum -y install samba samba-client samba-common
Samba服務(wù)安裝后,會生成配置文件目錄 /etc/samba,其中/etc/samba/smb.conf是它的核心配置文件,/usr/lib/systemd/system/smb.service是它的啟動/關(guān)閉文件。
二、Samba服務(wù)的組成與使用
Samba由兩個服務(wù)組成,一是smb,另一個由是nmb。
- smb服務(wù)是Samba的核心啟動服務(wù),只有smb服務(wù)啟動,才能實現(xiàn)文件的共享。
- nmb服務(wù)是負責 解析用的,類似于dns的功能,它可以把LINUX系統(tǒng)共享的工作組名與其IP對應(yīng)起來,如果nmb服務(wù)沒有運行,就只能通過IP地址來訪問了。
Samba服務(wù)安裝好后,就可以通過以下的命令進行啟動服務(wù)了:
systemctl start smb
這個命令執(zhí)行后沒有任何返回結(jié)果,如果想來檢查smb服務(wù)是否正常運行,可以通過下面的命令進行檢查:
ps -ef | grep smbd
#以下是返回結(jié)果
root 16655 1 0 09:51 ? 00:00:00 /usr/sbin/smbd --foreground --no-process-group
root 16657 16655 0 09:51 ? 00:00:00 /usr/sbin/smbd --foreground --no-process-group
root 16658 16655 0 09:51 ? 00:00:00 /usr/sbin/smbd --foreground --no-process-group
root 16659 16655 0 09:51 ? 00:00:00 /usr/sbin/smbd --foreground --no-process-group
root 16924 12084 0 09:52 pts/1 00:00:00 grep --color=auto smbd
三、Samba服務(wù)核心配置文件smb.conf
smb.conf是Samba服務(wù)最重要的配置文件,里面有很多選項和內(nèi)容,通過vim命令查看里面的內(nèi)容,可以看到是這樣的:
# See smb.conf.example for a more detailed config file or
# read the smb.conf manpage.
# Run 'testparm' to verify the config is correct after
# you modified it.
[global]
workgroup = SAMBA
security = user
passdb backend = tdbsam
printing = cups
printcap name = cups
load printers = yes
cups options = raw
[homes]
comment = Home Directories
valid users = %S, %D%w%S
browseable = No
read only = No
inherit acls = Yes
[printers]
comment = All Printers
path = /var/tmp
printable = Yes
create mask = 0600
browseable = No
[print$]
comment = Printer Drivers
path = /var/lib/samba/drivers
write list = @printadmin root
在定制屬于自己的Samba服務(wù)器之前,先來看一下這個配置文件中有哪些內(nèi)容?
- [global] 表示以下 的內(nèi)容為全局配置,是必選項。
- workgroup用來定義工作組,也就是Windows中的工作組的概念。
- passdb backend就是用戶后臺的意思。目前有三種后臺:smbpasswd、tdbsam和ldapsam,默認值為tdbsam,表示使用一個數(shù)據(jù)庫文件來建立用戶數(shù)據(jù)庫。數(shù)據(jù)庫文件叫passdb.tdb,默認在/etc/samba目錄下。passdb.tdb用戶數(shù)據(jù)庫可以使用smbpasswd –a來建立Samba用戶,不過要建立的Samba用戶必須先是系統(tǒng)用戶。
- printing 設(shè)置Samba共享打印機的類型,建議默認。
- load printers 設(shè)置是否在啟動Samba時就共享打印機。
- cups options 打印機的選項設(shè)置,很復(fù)雜,就不說明了,有興趣的可以自行百度。
- homes 用來設(shè)置在Windows中顯示出來的共享目錄的名稱。
- comment 對于共享目錄的描述。
- path 用來指定共享目錄的路徑,是必選項。
- valid users 設(shè)置允許訪問該共享的用戶,可以直接寫用戶名,如果需要設(shè)置用戶組的話,可以在組名前加上@即可,各用戶或者組名之間使用逗號隔開。
- browseable 取值為yes/no,用來指定該共享是否可以被瀏覽。
- read only 取值為yes/no,用來指定此共享是否只讀。
- inherit acls 取值為yes/no,設(shè)置是否從父目錄中繼承選項設(shè)置。
- printable 取值為yes/no,如果設(shè)置為yes,則客戶端可以將打印任務(wù)提交至打印池。
- create mask 設(shè)置對新創(chuàng)建文件的權(quán)限,如0600就表示為對創(chuàng)建者是可讀可寫,對其他用戶禁止訪問。
-
write list 用來設(shè)置訪問此目錄的讀寫權(quán)限用戶列表,如
write list = root,@students
除了示例文件中的參數(shù)項外,Samba還提供了更多的參數(shù)項目,感興趣的同學(xué)可以通過網(wǎng)文具體細節(jié)可以查看網(wǎng)文《smb.conf文件詳細介紹》來自行學(xué)習(xí)。
四、創(chuàng)建可匿名訪問的共享SAMBA服務(wù)
話不多說,下面就開始創(chuàng)建屬于自己的Samba服務(wù)吧!先來創(chuàng)建一個共享的目錄,即可以給所有人進行訪問。
1、修改配置文件
首先將原本的配置文件進行備份,這是一個好習(xí)慣,Linux服務(wù)大多都會有自帶的配置文件,在對此文件進行修改時,應(yīng)養(yǎng)成即時備份的習(xí)慣,我習(xí)慣使用如下命令進行文件備份。
cp -a smb.conf smb.conf.bak
備份完成后,使用vim編輯器打開smb.conf配置文件,保留[global]區(qū)域的內(nèi)容(但需增加匿名訪問內(nèi)容),其他的刪除,并加上如下的共享目錄,最終的文件內(nèi)容如下:
[global]
workgroup = SAMBA
security = user
map to guest = Bad User
passdb backend = tdbsam
printing = cups
printcap name = cups
load printers = yes
cups options = raw
[share]
comment = 家庭共享文件目錄
path = /share_files
writeable = yes
browseable = yes
log file = /share_files/access.log
public = yes
可以看到多了幾個新的選項:
- log file 指定訪問此目錄的日志文件。
- guest ok 指定是否允許匿名用戶訪問。
保存此配置文件,并退出!
2、創(chuàng)建共享目錄
在配置文件中,設(shè)置了共享目錄為/share_files,設(shè)置的日志文件為access.log,下面就建立這兩個目錄/文件。
mkdir /share_files
touch /share_files/access.log
除了創(chuàng)建這兩個目錄/文件外,還需要對它們設(shè)置文件訪問權(quán)限,所以只需再補上下面的命令:
chmod -R 777 /share_files
3、重啟smb服務(wù)
完成上兩步操作后,便可以執(zhí)行如下命令重啟smb服務(wù)了。
systemctl restart smb.service
4、測試smb服務(wù)
找一臺Windows電腦,然后在資源管理器(或計算機)地址欄中輸入 以下的地址:\\192.168.3.222\,其中的IP地址是Samba服務(wù)器的地址,建議訪問前先確保Windows與Linux機器的連通,可以使用ping命令簡單測試。
如果發(fā)現(xiàn)沒有成功訪問Samba服務(wù),可能是由于防火墻的原因,可以關(guān)閉防火墻,為了一勞永逸,我就直接把防火墻給關(guān)閉了,也可以將Samba服務(wù)添加至防火墻的例外中,這里就不演示了,后面再寫一篇關(guān)于防火墻的內(nèi)容。
systemctl stop firewalld
systemctl disable firewalld
如果您使用的是Windows 10系統(tǒng),由于組策略的原因,在使用匿名訪問的時候也會報錯,如下圖所示:

關(guān)閉組策略的相應(yīng)項目過程操作如下,打開組策略窗口,并找到相應(yīng)項目


啟用完“啟用不安全的來賓登錄”項目后,再次利用地址訪問,便可以看到共享目錄share了,如下圖所示:

五、使用SAMBA服務(wù)
1、在電腦中訪問SAMBA服務(wù)
打開Windows資源管理器,選擇添加一個網(wǎng)絡(luò)位置,操作的過程界面如下列所示:





點擊完成按鈕完成網(wǎng)絡(luò)位置的添加,回到資源管理器主界面,可以發(fā)現(xiàn)在網(wǎng)絡(luò)位置區(qū)域出現(xiàn)了家庭共享文件系統(tǒng)圖標,如下圖所示:

進入到此位置中,就如同使用本地盤符一樣,這里我們上傳一個電影看一下效果。

可以發(fā)現(xiàn)上傳的速度還是非??捎^的?。?!我們也可以在服務(wù)器上外接硬盤用來擴充容量,讓廢棄的電腦變成一個家庭文件服務(wù)器。
2、在移動設(shè)備中訪問SAMBA服務(wù)
作為一個深度的電影愛好者,拿著手機觀看下載的視頻是一件非常享受的事,有了SAMBA服務(wù)器,將影片通過迅雷或者百度云下載至SAMBA服務(wù)器上,然后可以使用多個終端訪問觀看,可以避免許多問題。
接下來以iphone為例,演示如何使用APP連接并管理SAMBA服務(wù)器的資源。
這里用到的APP是FE文件管理器,是一個免費的應(yīng)用,也沒有令人生厭的彈出廣告,下載完打開后的界面是這樣的。

點擊右上角的“+”號,添加連接服務(wù),打開連接服務(wù)的列表。

選擇“Linux”圖標,新建至Linux服務(wù)器的連接,系統(tǒng)會自動識別本網(wǎng)絡(luò)中的Linux鄰居,如圖所示:

點擊Linux服務(wù)器圖標,彈出登錄界面,此處選擇“訪客”項目。


成功登錄至SAMBA服務(wù)后,找到在前一項目中上傳的視頻文件,便可以觀看影片了,親測速度非常流暢。

六、后記
Linux對于多數(shù)人來說是一個比較專業(yè)的技術(shù),但如果僅僅是為了提高生活及工作的效率,其實有很多種玩法,筆者并不是一個專業(yè)的系統(tǒng)運維方面的專家,對Linux也是一知半解,只是嘗試將Linux融入工作和生活,提高工作的效率和生活的樂趣,一起共勉!