1.簡介
Samba是一個能讓Linux系統應用Microsoft網絡通訊協議的軟件,SMB(Server Message Block)服務器消息塊
Samba最大的功能是可以用於Linux與windows系統直接的文件共享和打印共享,既可以用於Windows與linux之間的文件共享也可以用於linux與linux之間的資源共享
基於客戶機/服務器的協議,因而一臺Samba服務器既可以充當文件共享服務器,也可以充當一個Samba客戶端
Samba在windows下使用的是NetBIOS協議,要使用linux下共享出來的文件,要確認windows系統安裝了NetBIOS協議
組成Samba運行的有兩個服務,一個是SMB,另一個是NMB;SMB是Samba 的核心啓動服務,主要負責建立 Linux Samba服務器與Samba客戶機之間的對話, 驗證用戶身份並提供對文件和打印系統的訪問,只有SMB服務啓動,才能實現文件的共享,監聽139 TCP端口;而NMB服務是負責解析用的,類似與DNS實現的功能,NMB可以把Linux系統共享的工作組名稱與其IP對應起來,如果NMB服務沒有啓動,就只能通過IP來訪問共享文件,監聽137和138 UDP端口。
例如,某臺Samba服務器的IP地址爲192.168.126.15,對應的工作組名稱爲MYWORKGROUP,那麼在Windows的IE瀏覽器輸入下面兩條指令都可以訪問共享文件。其實這就是Windows下查看Linux Samba服務器共享文件的方法。
\\192.168.126.15\共享目錄名稱
\\MYWORKGROUP\共享目錄名稱
Samba服務器可實現如下功能:WINS和DNS服務; 網絡瀏覽服務; Linux和Windows域之間的認證和授權; UNICODE字符集和域名映射;滿足CIFS協議的UNIX共享等。
2.環境準備
1.查看yum源中samba版本
[root@web03 ~]# yum list |grep samba
2.關閉防火牆與SELINUX
[root@web03 ~]# systemctl stop firewalld
[root@web03 ~]# systemctl disable firewalld
修改配置文件/etc/selinux/config,將SELINUX設置爲disabled
3.安裝Samba服務
1.安裝
[root@web03 ~]# yum install samba -y
2.檢查安裝的包
[root@web03 ~]# rpm -qa |grep samba
samba-common-4.9.1-10.el7_7.noarch
samba-client-libs-4.9.1-10.el7_7.x86_64 //客戶端軟件,主要提供linux主機作爲客戶端時,所需要的工具指令集
samba-4.9.1-10.el7_7.x86_64 //服務器端軟件,主要提供samba服務器的守護程序,共享文檔,日誌的輪替,
samba-common-libs-4.9.1-10.el7_7.x86_64 //主要提供samba服務器的設置文件與設置文件語法檢驗程序testparm
samba-common-tools-4.9.1-10.el7_7.x86_64
samba-libs-4.9.1-10.el7_7.x86_64
3.啓動服務
[root@web03 ~]# systemctl start smb
[root@web03 ~]# systemctl enable smb
4.配置Samba
主配置文件 /etc/samba/smb.conf
主配置文件由兩部分組成:
Global Settings:與Samba服務整體運行環境有關的選項,它的設置項目是針對所有共享資源的
Share Definition:針對共享目錄個別的設置,只對當前的共享資源起作用
pdbedit參數及功能
-a用戶名 建立Samba用戶
-x用戶名 刪除Samba用戶
-L 列出用戶列表
-Lv 列出用戶詳細信息的列表
[root@web03 ~]# vim /etc/samba/smb.conf
在最後添加
[user1]
comment = user1
path = /data
public = yes
browseable = yes
guest ok = no
writable = yes
[root@web03 ~]# groupadd user1
[root@web03 ~]# useradd user1 -g user1 -s /sbin/nologin
添加Samba用戶並設置密碼
[root@web03 ~]# pdbedit -a user1
Linux上的共享文件:
Windows上的共享文件夾: