1. 環境准備
1、CentOS 8.3版本(64位)
2、虛擬機:VMware® Workstation 15 Pro 15.5.7 build-17171714
3、samba軟件:samba-4.12.3-12.el8.3.x86_64
4、Windows版本:Windows10
2. 安裝軟件
2.1 准備工作
Windows 下:
確保 Windows 和 Linux 系統在同一工作組中。因此,轉到Windows PC並啟動命令提示符。輸入命令:
net config workstation
C:\Users\Administrator>net config workstation 計算機名 \\ZHIYUAN-SUO 計算機全名 zhiyuan-suo 用戶名 Administrator 工作站正運行於 NetBT_Tcpip_{218C6515-99FF-4131-9F4F-8582F6472E24} (005056C00001) NetBT_Tcpip_{3A06D971-EF0B-4FE6-BEC0-B8B0B1629F9D} (005056C00008) NetBT_Tcpip_{90D9EB6B-F732-438C-9295-09D71CC6A08C} (38D547AAD0E9) 軟件版本 Windows 10 Pro 工作站域 WorkGroup 登錄域 ZHIYUAN-SUO COM 打開超時 (秒) 0 COM 發送計數 (字節) 32 COM 發送超時 (毫秒) 250 命令成功完成。
從輸出中我們可以清楚地看到工作站域指向' WORKGROUP '。稍后將在Linux機器上對其進行配置。
2.2 安裝samba:
root用戶:
yum install samba samba-client samba-swat
或
sudo dnf install samba samba-common samba-client
如果已安裝會顯示:
[root@My-Linux-CentOS-8 suozhiyuan]# sudo dnf install samba samba-common samba-client 上次元數據過期檢查:1:57:08 前,執行於 2021年01月14日 星期四 08時39分07秒。 軟件包 samba-4.12.3-12.el8.3.x86_64 已安裝。 軟件包 samba-common-4.12.3-12.el8.3.noarch 已安裝。 軟件包 samba-client-4.12.3-12.el8.3.x86_64 已安裝。 依賴關系解決。 無需任何處理。 完畢!
如果未安裝會顯示:
[root@localhost init.d]# yum install samba samba-client samba-swat 上次元數據過期檢查:0:25:25 前,執行於 2021年01月13日 星期三 23時56分55秒。 依賴關系解決。 ================================================================================================================== 軟件包 架構 版本 倉庫 大小 ================================================================================================================== 安裝: samba x86_64 4.12.3-12.el8.3 baseos 840 k samba-client x86_64 4.12.3-12.el8.3 baseos 692 k 安裝依賴關系: samba-common-tools x86_64 4.12.3-12.el8.3 baseos 484 k samba-libs x86_64 4.12.3-12.el8.3 baseos 188 k 事務概要 ===================================================================================================================
安裝 4 軟件包
總下載:2.2 M
安裝大小:6.3 M
確定嗎?[y/N]:
下載軟件包: (1/4): samba-client-4.12.3-12.el8.3.x86_64.rpm 2.2 MB/s | (2/4): samba-common-tools-4.12.3-12.el8.3.x86_64.rpm 1.3 MB/s | (3/4): samba-4.12.3-12.el8.3.x86_64.rpm 2.0 MB/s | (4/4): samba-libs-4.12.3-12.el8.3.x86_64.rpm 69 kB/s | -------------------------------------------------------------------------------------------------------------------- 總計 313 kB/s | 警告:/var/cache/dnf/baseos-929b586ef1f72f69/packages/samba-4.12.3-12.el8.3.x86_64.rpm: 頭V3 RSA/SHA256 Signature,
密鑰 ID 88888888: NOKEY CentOS Linux 8 - BaseOS 1.6 MB/s | 導入 GPG 公鑰 88888888: Userid: "CentOS (CentOS Official Signing Key) <security@centos.org>" 指紋: 8888 70FA 8888 8888 7FB6 8888 05B5 55B3 8483 8888 來自: /etc/pki/rpm-gpg/ABC-DEF-GHI-centosofficial 確定嗎?[y/N]:
安裝完成后會顯示:
導入公鑰成功 運行事務檢查 事務檢查成功。 運行事務測試 事務測試成功。 運行事務 准備中 : 1/1 安裝 : samba-libs-4.12.3-12.el8.3.x86_64 1/4 安裝 : samba-common-tools-4.12.3-12.el8.3.x86_64 2/4 安裝 : samba-4.12.3-12.el8.3.x86_64 3/4 運行腳本: samba-4.12.3-12.el8.3.x86_64 3/4 安裝 : samba-client-4.12.3-12.el8.3.x86_64 4/4 運行腳本: samba-client-4.12.3-12.el8.3.x86_64 4/4 驗證 : samba-4.12.3-12.el8.3.x86_64 1/4 驗證 : samba-client-4.12.3-12.el8.3.x86_64 2/4 驗證 : samba-common-tools-4.12.3-12.el8.3.x86_64 3/4 驗證 : samba-libs-4.12.3-12.el8.3.x86_64 4/4 Installed products updated. 已安裝: samba-4.12.3-12.el8.3.x86_64 samba-client-4.12.3-12.el8.3.x86_64
samba-common-tools-4.12.3-12.el8.3.x86_64 samba-libs-4.12.3-12.el8.3.x86_64 完畢!
2.3 檢查是否安裝成功
rpm -qa | grep samba
如果顯示以下信息, 為安裝成功
[root@localhost init.d]# rpm -qa | grep samba samba-4.12.3-12.el8.3.x86_64 samba-common-4.12.3-12.el8.3.noarch samba-client-4.12.3-12.el8.3.x86_64 samba-client-libs-4.12.3-12.el8.3.x86_64 samba-libs-4.12.3-12.el8.3.x86_64 samba-common-tools-4.12.3-12.el8.3.x86_64 samba-common-libs-4.12.3-12.el8.3.x86_64
2.4 samba文件配置
2.4.1 先將smb.conf備份,網上很多人都用rm,后面再建立個新文件,我習慣用cp命令額外拷貝
[root@My-Linux-CentOS-8 /]# cp etc/samba/smb.conf etc/samba/smb2.conf [root@My-Linux-CentOS-8 /]# ls -laF etc/samba/ 總用量 36 drwxr-xr-x. 2 root root 78 1月 14 10:48 ./ drwxr-xr-x. 154 root root 8192 1月 13 10:50 ../ -rw-r--r--. 1 root root 20 8月 18 04:50 lmhosts -rw-r--r--. 1 root root 706 1月 14 10:48 smb2.conf -rw-r--r--. 1 root root 706 8月 18 04:50 smb.conf -rw-r--r--. 1 root root 11327 8月 18 04:50 smb.conf.example
2.4.2 創建目錄文件, 並進行權限和安全相關設置, 我將這個目錄創建到了 /home/ 目錄下
mkdir -p /home/data # 創建文件夾,-P的作用為:如果文件路徑不存在則創建路徑
chmod -R 0755 /home/data # 改變文件權限為drwxr-xr-x,-R:改變指定目錄及其下的所有子目錄和文件的擁有者
chown -R nobody:nobody /home/data # 修改文件夾權限
2.4.3 對 samba 配置文件 smb.conf 進行配置
vim /etc/samba/smb.conf # 打開配置文件
刪除所有內容,寫入以下配置:
[global] workgroup = WORKGROUP server string = Samba Server %v netbios name = MySambaServer security = user map to guest = bad user dns proxy = no [data] path = /home/data/ browsable =yes writable = yes guest ok = yes read only = no
保存並關閉配置文件。
smb.conf 中增加的配置內容解釋:
[global] workgroup = WORKGROUP # 設定 SambaServer 所要加入的工作組或者域,需要與 Windows 工作組一致
server string = Samba Server %v # 設定 SambaServer 的注釋,可以是任何字符串,也可以不填。宏%v表示顯示Samba的版本號
netbios name = centos-8 # 設置 SambaServer 的 NetBIOS 名稱。如果不填則默認會使用該服務器的DNS名稱的第一部分。netbios name和workgroup名字不要設置成一樣了 security = user # 設置用戶訪問 SambaServer 的驗證方式,一共有四種驗證方式 # 1. share:用戶訪問 SambaServer 不需要提供用戶名和口令, 安全性能較低。 # 2. user:SambaServer 共享目錄只能被授權的用戶訪問,由 SambaServer 負責檢查賬號和密碼的正確性。賬號和密碼要在本 SambaServer
中建立。 # 3. server:依靠其他Windows NT/2000或Samba Server來驗證用戶的賬號和密碼,是一種代理驗證。此種安全模式下,系統管理員可以把所有的
Windows用戶和口令集中到一個NT系統上,使用Windows NT進行Samba認證, 遠程服務器可以自動認證全部用戶和口令,如果認證失敗,Samba將使用
用戶級安全模式作為替代的方式。 # 4. domain:域安全級別,使用主域控制器(PDC)來完成認證。 map to guest = bad user # 將匿名用戶映射為nobody用戶,這個是Samba4.0之前版本的 security=share,4.0之后改成了 security 和 map to guest
dns proxy = no # 設置 SambaServer 是否開啟dns代理服務 [Anonymous] # 共享文件夾配置 windows 顯示 “Anonymous” 文件名
path = /srv/samba/shared # centos 服務器中,共享目錄路徑 # path用來指定共享目錄的路徑。可以用%u、%m這樣的宏來代替路徑里的unix用戶和客戶機的Netbios名,用宏表示主要用於[homes]共享域。
例如:如果我們不打算用home段做為客戶的共享,而是在/home/share/下為每個Linux用戶以他的用戶名建個目錄,作為他的共享目錄,
這樣path就可以寫成:path = /home/share/%u; 。用戶在連接到這共享時具體的路徑會被他的用戶名代替,要注意這個用戶名路徑一定
要存在,否則,客戶機在訪問時會找不到網絡路徑。同樣,如果我們不是以用戶來划分目錄,而是以客戶機來划分目錄,為網絡上每台可以訪問
samba的機器都各自建個以它的netbios名的路徑,作為不同機器的共享資源,就可以這樣寫:path = /home/share/%m
browsable =yes # 允許該目錄被顯示在系統資源中
writable = yes # 用來指定該共享路徑是否可寫,是否是只讀,如果有read only的配置,二者沖突會以 writable 為准
guest ok = yes # 意義同“public”,公開共享,若為否則進行身份驗證(只有當security = share 時此項才起作用)
read only = no # 以只讀方式共享,當與 writable 發生沖突時以 writable 為准
2.4.4 檢查配置文件的正確
要驗證配置是否正確,請運行命令: testparm
配置正確顯示:
[root@My-Linux-CentOS-8 samba]# testparm Load smb config files from /etc/samba/smb.conf Loaded services file OK. Server role: ROLE_STANDALONE Press enter to see a dump of your service definitions
敲回車出2次確認
# Global parameters [global] dns proxy = No map to guest = Bad User netbios name = CENTOS-8 security = USER server string = Samba Server %v idmap config * : backend = tdb [Anonymous] guest ok = Yes path = /home/suozhiyuan read only = No [root@My-Linux-CentOS-8 samba]#
2.5 防火牆的處理
此處建議不關閉防火牆,而允許 Samba 穿越防火牆,以便外部用戶可以訪問 Samba 共享。
firewall-cmd --add-service=samba --zone=public --permanent firewall-cmd --reload
操作成功提示:
[root@My-Linux-CentOS-8 samba]# firewall-cmd --add-service=samba --zone=public --permanent success [root@My-Linux-CentOS-8 samba]# firewall-cmd --reload success
如果提示防火牆未開啟可通過以下命令開啟
開啟 firewalld 防火牆
systemctl start firewalld.service # 啟用firewalld服務 systemctl enable firewalld.service # 開機啟用firewalld服務
驗證防火牆開啟狀態
systemctl status firewalld.service # 查看開啟狀態
2.6 啟動並啟用Samba服務
systemctl start smb
systemctl enable smb
確認smb服務是否正在運行
systemctl status smb
成功啟動打印內容:
[root@My-Linux-CentOS-8 samba]# systemctl start smb # 啟動 Samba 服務 [root@My-Linux-CentOS-8 samba]# systemctl enable smb # 啟用 Samba 服務 Created symlink /etc/systemd/system/multi-user.target.wants/smb.service → /usr/lib/systemd/system/smb.service. [root@My-Linux-CentOS-8 samba]# systemctl status smb # 查看 Samba 是否運行 ● smb.service - Samba SMB Daemon Loaded: loaded (/usr/lib/systemd/system/smb.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2021-01-14 18:23:29 CST; 1min 42s ago Docs: man:smbd(8) man:samba(7) man:smb.conf(5) Main PID: 35790 (smbd) Status: "smbd: ready to serve connections..." Tasks: 4 (limit: 11067) Memory: 28.0M CGroup: /system.slice/smb.service ├─35790 /usr/sbin/smbd --foreground --no-process-group ├─35792 /usr/sbin/smbd --foreground --no-process-group ├─35793 /usr/sbin/smbd --foreground --no-process-group └─35794 /usr/sbin/smbd --foreground --no-process-group 1月 14 18:23:27 My-Linux-CentOS-8.3.2011-001 systemd[1]: Starting Samba SMB Daemon... 1月 14 18:23:29 My-Linux-CentOS-8.3.2011-001 smbd[35790]: [2021/01/14 18:23:29.429616, 0] ../../lib/util/become_daemon.c:136(daemon_ready) 1月 14 18:23:29 My-Linux-CentOS-8.3.2011-001 systemd[1]: Started Samba SMB Daemon. 1月 14 18:23:29 My-Linux-CentOS-8.3.2011-001 smbd[35790]: daemon_ready: daemon 'smbd' finished starting up and ready to serve connections
2.7 啟動並啟用nmb服務
sudo systemctl start nmb
sudo systemctl enable nmb
確認nmb服務是否正在運行
systemctl status nmb
成功啟用打印內容
[root@My-Linux-CentOS-8 samba]# sudo systemctl start nmb [root@My-Linux-CentOS-8 samba]# sudo systemctl enable nmb Created symlink /etc/systemd/system/multi-user.target.wants/nmb.service → /usr/lib/systemd/system/nmb.service. [root@My-Linux-CentOS-8 samba]# systemctl status nmb ● nmb.service - Samba NMB Daemon Loaded: loaded (/usr/lib/systemd/system/nmb.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2021-01-14 18:36:00 CST; 13s ago Docs: man:nmbd(8) man:samba(7) man:smb.conf(5) Main PID: 36019 (nmbd) Status: "nmbd: ready to serve connections..." Tasks: 1 (limit: 11067) Memory: 3.5M CGroup: /system.slice/nmb.service └─36019 /usr/sbin/nmbd --foreground --no-process-group 1月 14 18:36:00 My-Linux-CentOS-8.3.2011-001 systemd[1]: Starting Samba NMB Daemon... 1月 14 18:36:00 My-Linux-CentOS-8.3.2011-001 systemd[1]: Started Samba NMB Daemon. 1月 14 18:36:00 My-Linux-CentOS-8.3.2011-001 nmbd[36019]: [2021/01/14 18:36:00.373202, 0] ../../lib/util/become_daemon.c:136(daemon_ready) 1月 14 18:36:00 My-Linux-CentOS-8.3.2011-001 nmbd[36019]: daemon_ready: daemon 'nmbd' finished starting up and ready to serve connections
3. 從 Windows 機器訪問 Samba 共享
在Windows PC上,按Windows鍵+ R啟動“運行”對話框,然后鍵入
\\samba主機名服務器 或 \\服務器的IP地址
紅框處就是samba主機名服務器
====================================================================================================================================