Linux搭建samba服務


Linux搭建samba服務

基於Armbian系統(基於Debian)搭建,其他Linux發行版可能會有些不同,搭建方法基本類似。

一、安裝Samba

apt -y install samba

二、修改samba的配置文件

samba的配置文件位於/etc/samba/smb.conf

默認的smb.conf文件中有很多注釋(#開頭),可以用 cat /etc/samba/smb.conf | grep -v "#" 命令過濾掉#開頭的行,方便查看


1、配置匿名訪問的smb共享

可以先備份下原本的smb配置文件cp /etc/samba/smb.conf /etc/samba/smb.conf.bak,然后將編輯smb.conf文件,將文件內容修改為:

#======================= Global Settings =======================
[global]
	workgroup = WORKGROUP
	server string = Samba Server Version %v
	security = user
	passdb backend = tdbsam
	load printers = yes
	cups options = raw
	map to guest = Bad User

#======================= Share Definitions =======================
[public]
	comment = public
	path = /opt/myShare/public
	browseable = yes
	public = yes
	writable = yes

由於我只是用來smb共享文件,所以將原本smb.conf中的[homes]、[printers]等配置都刪除了

修改好smb.conf文件后,用testparm命令測試配置是否正確。沒有錯誤后,輸入systemctl restart smbd.service重啟smb服務。

這里要注意[global]設置中的map to guest = Bad User配置,是匿名訪問的關鍵

注意點:

①、上述共享的/opt/myShare/public目錄要設置777權限,不然默認權限下,就算設置了writable = yes,也是沒有權限寫入的

chmod 777 /opt/myShare/public

②、網上有部分教程將[global]設置中的security = user設置為 security = share,說share是指 用戶不需要賬戶及密碼即可登錄samba服務器,但是我實測下來,testparm會報錯

rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
WARNING: Ignoring invalid value 'share' for parameter 'security'
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
WARNING: Ignoring invalid value 'share' for parameter 'security'
Error loading services.

③、這樣設置后,匿名用戶創建的文件在linux中會顯示

為了解決這個問題,可以在[global]設置中增加guest account配置

#======================= Global Settings =======================
[global]
	workgroup = WORKGROUP
	server string = Samba Server Version %v
	security = user
	passdb backend = tdbsam
	load printers = yes
	cups options = raw
	map to guest = Bad User
	guest account = sky

將匿名用戶映射為sky用戶(sky用戶是自己創建的,創建方法見下面的配置加密訪問的smb共享),此時匿名用戶新建的文件在linux中就會顯示


2、配置加密訪問的smb共享

既然是加密訪問,首先就要創建用戶並設置密碼

①、先創建linux用戶

useradd -s /sbin/nologin sky

②、再創建samba用戶,根據提示設置好密碼即可

pdbedit -a -u sky

③、驗證賬號是否添加成功

pdbedit -L  #列出所有的賬號

用戶就創建好了

在上述smb.conf配置文件中增加[share]共享目錄,注意加密的要將public設置為no

#======================= Share Definitions =======================
[share]
	comment = share
	path = /opt/myShare/share
	browseable = yes
	public = no
	writable = yes

修改好smb.conf文件后,同樣用testparm命令測試配置是否正確。沒有錯誤后,輸入systemctl restart smbd.service重啟smb服務

此時,在windows上訪問該smb服務時,只需要輸入剛才添加的用戶和對應的密碼即可訪問share目錄,如果發現不能寫入文件,別忘記了和之前匿名的方式一樣需要將共享的/opt/myShare/share目錄設置777權限

chmod 777 /opt/myShare/share

另外,如果將browseable參數設置為browseable = no,那么在windows映射網絡驅動器時,輸入\\192.168.123.88 點擊瀏覽的時候是看不到share文件夾的,但是可以直接輸入全路徑添加,就是瀏覽的時候看不到了

三、擴展:samba分享移動硬盤或U盤里的文件

1、掛載移動硬盤

mount /dev/sdb1 /media/smbshare/

2、設置samba共享,在smb.conf文件中增加

#======================= Share Definitions =======================
[USB_Device]
	comment = USB_Device
	path = /media/smbshare
	browseable = yes
	public = no
	writable = yes

重啟smb服務后即可

注意點:

移動硬盤或U盤被掛載使用samba共享並且正在使用時,umount會提示target is busy.

此時要想umount,先將samba服務停用,輸入systemctl stop smbd.service停止smb服務,再輸入umount /media/smbshare即可成功卸載磁盤,然后再輸入systemctl start smbd.service啟動smb服務


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM