網站首頁 編程語言 正文
Samba 服務概述
Samba最先在Linux和Windows兩個平臺之間架起了一座橋梁,正是由于Samba 的出現,我們可以在Linux 系統和Windows 系統之間互相通信,比如拷貝文件、實現不同操作系統之間的資源共享等等,我們可以將其架設成一個功能非常強大的文件服務器,也可以將其架設成打印服務器提供本地和遠程聯機打印。
Samba 應用環境
文件和打印機共享∶文件和打印機共享是Samba 的主要功能,SMB進程實現資源共享,將文打印機發布到網絡之中,以供用戶可以訪問。
身份驗證和權限設置:smbd服務支持user mode和domain mode等身份驗證和權限設置模式,v通過加密方式可以保護共享的文件和打印機.
名稱解析:Samba通過nmbd 服務可以搭建NBNS(NetBIOS Name Service)服務器,提供名稱解析,將計算機的NetBIOS名解析為IP地址。
瀏覽服務∶局域網中,Samba 服務器可以成為本地主瀏覽服務器,保存可用資源列表當使用客戶端訪問Windows 網上鄰居時,會提供瀏覽列表,顯示共享目錄、打印機等資源。
端口
查看端口: netstat -tlnp |grep smb
193
445
NetBIOS協議
NetBIOS是Network Basic Input/Output System的簡稱,網絡基本輸入/輸出系統協議。協議,一般指用于局域網通信的一套API,是由IBM公司開發。主要作用:通過NETBIOS協議獲得計算機名稱,然后把計算機名解析為對應IP地址。
安裝Samba及配置
yum -y install samba
安裝完成后會有如下打印
服務啟動和關閉
-
啟動samba服務
service smb restart
-
加載smb.conf
service smb reload
-
關閉防火墻和SElinux
service iptables stop setenforce 0
申請一個新的賬號
新建用戶: useradd 用戶名
設置新用戶密碼: passwd 用戶名
刪除用戶: userdel -r 用戶名
groupadd 命令用于創建一個新的工作組,新工作組的信息將被添加到系統文件中
將用戶添加到samba用戶數據庫:smbpasswd -a 用戶名
Samba常規服務器配置
基本的Samba服務器的搭建流程主要分為四個步驟∶
- 編輯主配置文件smb.conf,指定需要共享的目錄,并為共享目錄設置共享權限。
- 在smb.conf 文件中指定文件名稱和存放路徑。
- 設置共享目錄的本地系統權限及samba共享權限。
- 重新加載配置文件或重新啟動smb服務,使用配置生效·
配置文件:smb.conf解析
配置文件的路徑:
ls /etc/samba/smb.conf
smb.conf配置文件中內容:
-
smb.conf 文件的開頭部分為samba配置簡介,告訴我們smb.conf 文件的作用及相關信息。
-
smb.conf 中還有以";“分號開頭,這些都是samba配置的格式范例,默認是不生效,可以通過去掉前面的”;"并加以修改來設置想使用的功能。#號表示為注釋。
-
workgroup = WORKGROUP 說明:設定 Samba Server 所要加入的工作組或者域。
-
server string = Samba Server Version %v 說明:設定 Samba Server 的注釋,可以是任何字符串,也可以不填。%v表示顯示Samba的版本號
-
security = user 1. share:用戶訪問Samba Server不需要提供用戶名和口令, 安全性能較低。 2. user:Samba Server共享目錄只能被授權的用戶訪問,由Samba Server負責檢查賬號和密碼的正確性。賬號和密碼要在本Samba Server中建立。
-
log file = /var/log/samba/log.%m 設置Samba Server日志文件的存儲位置以及日志文件名稱。在文件名后加個宏%m(主機名),表示對每臺訪問Samba Server的機器都單獨記錄一個日志文件
-
max log size = 50 說明:設置Samba Server日志文件的最大容量,單位為kB,0代表不限制
-
passdb backend = tdbsam 說明:passdb backend就是用戶后臺的意思。目前有三種后臺:smbpasswd、tdbsam和ldapsam。sam是security account manager(安全賬戶管理)的簡寫。 1.smbpasswd:該方式是使用smb自己的工具smbpasswd來給系統用戶(真實用戶或者虛擬用戶)設置一個Samba密碼,客戶端就用這個密碼來訪問Samba的資源。smbpasswd文件默認在/etc/samba目錄下,不過有時候要手工建立該文件。 2.tdbsam: 該方式則是使用一個數據庫文件來建立用戶數據庫。數據庫文件叫passdb.tdb,默認在/etc/samba目錄下。passdb.tdb用戶數據庫 可以使用smbpasswd –a來建立Samba用戶,不過要建立的Samba用戶必須先是系統用戶。我們也可以使用pdbedit命令來建立Samba賬戶。pdbedit命令的 參數很多,我們列出幾個主要的。 pdbedit –a username:新建Samba賬戶。 pdbedit –x username:刪除Samba賬戶。 pdbedit –L:列出Samba用戶列表,讀取passdb.tdb數據庫文件。 pdbedit –Lv:列出Samba用戶列表的詳細信息。 pdbedit –c “[D]” –u username:暫停該Samba用戶的賬號。 pdbedit –c “[]” –u username:恢復該Samba用戶的賬號。
-
smb passwd file = /etc/samba/smbpasswd 說明:用來定義samba用戶的密碼文件。smbpasswd文件如果沒有那就要手工新建。
-
map to guest = bad user 配置的意思是將所有samba系統主機所不能正確識別的用戶都映射成guest用戶
-
comment = 任意字符串 說明:comment是對該共享的描述,可以是任意字符串。
-
path = 共享目錄路徑 說 明:path用來指定共享目錄的路徑
-
browseable = yes/no 說明:browseable用來指定該共享是否可以瀏覽
-
writable = yes/no 說明:writable用來指定該共享路徑是否可寫。
-
available = yes/no 說明:available用來指定該共享資源是否可用。
-
valid users = 允許訪問該共享的用戶 說明:valid users用來指定允許訪問該共享資源的用戶。 例如:valid users = test,@dave,@tech(多個用戶或者組中間用逗號隔開,如果要加入一個組就用“@組名”表示。)
-
invalid users = 禁止訪問該共享的用戶 說明:invalid users用來指定不允許訪問該共享資源的用戶。 例如:invalid users = root,@bob(多個用戶或者組中間用逗號隔開。)
-
guest ok = yes/no 說明:意義同“public”。
-
public = yes/no 說明:public用來指定該共享是否允許guest賬戶訪問。
-
write list = 允許寫入該共享的用戶 說明:write list用來指定可以在該共享下寫入文件的用戶。 例如:write list = david,@dave
-
hosts deny = 192.168.0. 說明:禁止192.168.0. 網段訪問
-
hosts allow = 192.168.0. 說明:允許192.168.0.網段訪問
注意事項
安裝Samba可能出現的問題
-
因為可能是系統自動升級正在運行,yum在鎖定狀態中。已經有一個yum進程在運行。
解決措施:
rm -f /var/run/yum.pid
-
出現這個錯誤一般是沒有正確配置鏡像文件,需要配置阿里鏡像
解決措施:
備份現有repo倉庫 1 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 下載并使用阿里云倉庫repo 2 curl -o /etc/yum.repos.d/CentOS-Base.repo https://www.xmpan.com/Centos-6-Vault-Aliyun.repo 更新yum 3 yum clean all 4 yum makecache 5 yum -y install samba -y
Samba服務打開,但是無法連接到服務器:
解決措施:
-
打開: 控制面板\程序\程序和功能 -> 啟用或關閉Windows功能 -> 勾選SMB 1.0/CIFS 文件共享支持
-
控制面板\網絡和 Internet\網絡和共享中心\高級共享設置
-
關閉防火墻SElinux
1 service iptables stop 2 setenforce 0
制面板\程序\程序和功能 -> 啟用或關閉Windows功能 -> 勾選SMB 1.0/CIFS 文件共享支持
[外鏈圖片轉存中…(img-rgjsZEzL-1625100109439)]
-
控制面板\網絡和 Internet\網絡和共享中心\高級共享設置
[外鏈圖片轉存中…(img-iuogrTH7-1625100109440)]
-
關閉防火墻SElinux
1 service iptables stop 2 setenforce 0
原文鏈接:https://blog.csdn.net/qq_42989195/article/details/118378603
相關推薦
- 2022-07-15 Android自定義view繪制表格的方法_Android
- 2022-09-13 C#中的modbus?Tcp協議的數據抓取和使用解析_C#教程
- 2023-01-18 Android?Intent通信詳細講解_Android
- 2022-07-29 Python控制線程和函數超時處理_python
- 2022-08-15 linux交叉編譯依賴包
- 2023-01-15 盤點SqlServer?分頁方式和拉姆達表達式分頁_MsSql
- 2022-11-19 GoLang中的iface?和?eface?的區別解析_Golang
- 2024-01-06 RocketMQ消費模式
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支