【Linux學習筆記24-1】網路檔案系統 samba共享設定 + 自動掛解除安裝 autofs

sdsnzy_9發表於2020-12-04

0-1 實驗環境

  • 伺服器端:node1===>192.168.43.101
  • 客戶端:node2===>192.168.43.111

0-2 Windows與Linux共享檔案

  • Windows主機IP:192.168.43.1
  1. 新建資料夾westos
  2. 開啟檔案屬性===>共享===>高階共享===>共享資料夾===>設定共享名稱
  3. 檔案屬性===>共享===>箭頭===>選擇Everyone===>新增===>共享===>完成

在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述

  • Linux客戶端:node2主機

smbclient -L //192.168.43.1/共享名稱 -U administrator

1. samba服務簡介

Samba是SMB的一種實現方法,主要用來實現Linux系統的檔案和列印服務。Linux使用者通過配置使用Samba伺服器可以實現與Windows使用者的資源共享。

samba 是基於SMB協議(ServerMessage Block,資訊服務塊)的開源軟體,samba也可以是SMB協議的商標。SMB是一種Linux、UNIX系統上可用於共享檔案和印表機等資源的協議,這種協議是基於Client\Server型的協議,Client端可以通過SMB訪問到Server(伺服器)上的共享資源。當Windows是 Client,CentOS是伺服器時,通過Samba就可以實現window訪問Linux的資源,實現兩個系統間的資料互動。

samba是執行於unix/linux的軟體。它分為伺服器端和客戶端,實現了cifs協議描述的功能。用於windows和unix/linux見檔案共享

cifs:Windows上的檔案共享協議,其前身是SMB協議

2. samba基本資訊

  1. 服務啟動指令碼
    smb.service

  2. 主配置目錄
    /etc/samba

  3. 主配置檔案
    /etc/samba/smb.conf

  4. 安全上下文
    samba_share_t

  5. 139445

  6. 安裝包
    samba
    samba-common:工具包
    samba-client:客戶端

3. samba的安裝與啟用

  1. dnf search samba:查詢
  2. dnf install samba -y:伺服器端安裝
    dnf install samba-common -y:伺服器和客戶端均需安裝
    dnf install samba-client -y:客戶端安裝
  3. systemctl enable --now smb.service:啟動samba服務
  4. 當火牆開啟時啟用samba:
    firewall-cmd --permanent --add-service=samba:在火牆中永久開啟samba
    firewall-cmd --reload:重新整理火牆使設定生效

在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述

  • 測試:

smbclient -L //192.168.43.101:列出指定IP提供的共享檔案

(當需要輸入root密碼時請直接回車)

在這裡插入圖片描述

4. samba使用者的建立

samba使用者必須是本地存在的使用者

  1. smbpasswd -a 使用者名稱:新增samba使用者
  2. pdbedit -L:檢視samba使用者列表
  3. pdbedit -x 使用者名稱:刪除samba使用者

在這裡插入圖片描述

5. samba使用者訪問家目錄

  1. setsebool -P samba_enable_home_dirs on

在這裡插入圖片描述

  • 在Windows下訪問

Windows+R===>輸入 \\192.168.43.101執行

在這裡插入圖片描述
在這裡插入圖片描述

  • 在Linux下訪問

smbclient -L //IP/共享名稱 -U 使用者名稱:列出指定IP提供的共享檔案

在這裡插入圖片描述

6. samba服務共享目錄

6.1 共享自建目錄

  1. mkdir /westosdir:建立共享目錄
  2. touch /westosdir/file1:建立檔案
  3. semanage fcontext -a -t samba_share_t ‘/westosdir(/.*)?’:修改共享目錄的Selinux安全上下文
  4. restorecon -RvvF /westosdir:重新整理
  5. cp /etc/samba/smb.conf.example /etc/samba/smb.conf:複製模板檔案
  6. vim /etc/samba/smb.conf:新增共享目錄
	[LEE]	#共享名稱
	comment = westos dir	#共享說明
	path = /westosdir	#共享路徑
  1. systemctl restart smb.service:重啟服務

在這裡插入圖片描述

在這裡插入圖片描述
在這裡插入圖片描述

  • 在客戶端訪問共享檔案:
  1. smbclient //共享檔案主機IP/共享名 -U samba使用者名稱:列出指定IP提供的共享檔案
  2. mount -o username=samba使用者名稱,password=密碼 //共享檔案主機IP/共享名 掛載目錄:掛載檔案系統

在這裡插入圖片描述
在這裡插入圖片描述

6.2 共享系統目錄(不能直接修改安全上下文)

  1. vim /etc/samba/smb.conf:修改共享目錄為系統目錄
	[LEE]	#共享名稱
	comment = westos dir	#共享說明
	path = /mnt	#共享路徑
  1. setsebool -P samba_export_all_ro on:修改bool值(允許讀共享)
  2. getsebool -a | grep samba:查詢samba的bool值
  3. systemctl restart smb.service:重啟服務

在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述

  • 在客戶端訪問共享檔案:

smbclient //共享檔案主機IP/共享名 -U samba使用者名稱:列出指定IP提供的共享檔案

在這裡插入圖片描述

  • 還原伺服器端設定

在這裡插入圖片描述
在這裡插入圖片描述

7. samba常用配置引數

  1. 伺服器端:
    • chmod 777 共享目錄:修改共享目錄許可權
    • vim /etc/samba/smb.conf:新增或修改引數
    • systemctl restart smb.service:重啟服務
  2. 客戶端測試:
    • mount -o username=sdsnzy1,password=sdsnzy1 //192.168.43.101/LEE /mnt/

7.1 所有使用者可寫

writable = yes

  • 客戶端掛載後建立檔案失敗!

在這裡插入圖片描述

  • 伺服器端修改許可權及配置檔案,重啟服務

在這裡插入圖片描述
在這裡插入圖片描述

  • 客戶端測試:重新掛載,可寫!

在這裡插入圖片描述

7.2 指定使用者可寫

write list = 使用者

  • 伺服器端修改配置檔案,重啟服務!

在這裡插入圖片描述

  • 客戶端重新掛載測試:

在這裡插入圖片描述

7.3 指定組可寫

write list = @使用者+使用者

  • 伺服器端修改配置檔案,重啟服務!(新增sdsnzy1為sdsnzy2的附加組,實驗完成後還原)

在這裡插入圖片描述
在這裡插入圖片描述

  • 客戶端重新掛載測試:

在這裡插入圖片描述
在這裡插入圖片描述

7.4 指定訪問使用者

valid users = 使用者

  • 伺服器端修改配置檔案,重啟服務!

在這裡插入圖片描述

  • 客戶端重新掛載測試:

在這裡插入圖片描述

7.5 指定訪問組

valid users = @使用者+使用者

  • 伺服器端修改配置檔案,重啟服務!(新增sdsnzy1為sdsnzy2的附加組,實驗完成後還原)

在這裡插入圖片描述
在這裡插入圖片描述

  • 客戶端重新掛載測試:

在這裡插入圖片描述

7.6 是否隱藏共享

browseable = no:不顯示共享

browseable = yes:顯示共享(預設)

  • 伺服器端設定不顯示共享時,重啟服務,客戶端測試:

在這裡插入圖片描述
在這裡插入圖片描述

  • 伺服器端設定顯示共享時,重啟服務,客戶端測試:

在這裡插入圖片描述
在這裡插入圖片描述

7.7 允許匿名使用者訪問

map to guest = bad user :全域性設定(在[gloabl]裡新增)
guest ok = yes:共享名稱裡設定

  • 伺服器端修改配置檔案,重啟服務!

在這裡插入圖片描述
在這裡插入圖片描述

  • 客戶端匿名掛載測試:

mount -o username=guest //192.168.43.101/LEE /mnt:匿名掛載

在這裡插入圖片描述

7.8 指定主機訪問(白名單)

hosts allow = 192.168.43.111:只有該主機能訪問(多個主機IP用空格隔開)

hosts allow = 192.168.43.:只有該網段下的主機能訪問(例如192.168.43.38;192.168.43.183…等等)

7.9 指定主機訪問(黑名單)

hosts deny = 192.168.43.111:只禁止該主機訪問(多個主機IP用空格隔開)
hosts allow = 192.168.43.:禁止該網段下的主機訪問

8. Samba+autofs 自動掛載解除安裝

autofs:在客戶端實現自動掛載解除安裝的軟體;

mount是用來掛載檔案系統的,可以在系統啟動的時候掛載也可以在系統啟動後掛載。對於本地固定裝置,如硬碟可以使用mount掛載;而光碟、軟盤、NFS、SMB等檔案系統具有動態性,即需要的時候才有必要掛載。光碟機和軟盤我們一般知道什麼時候需要掛載,但NFS和SMB共享等就不一定知道了,即我們一般不能及時知道NFS共享和SMB什麼時候可以掛載。而autofs服務就提供這種功能,好像windows中的光碟機自動開啟功能,能夠及時掛載動態載入的檔案系統。免去我們手動掛載的麻煩。要實現光碟機,軟盤等的動態自動掛載,需要進行相關的配置。

8.1 autofs客戶端安裝

dnf install autofs -y

在這裡插入圖片描述

8.2 客戶端配置

  1. vim /etc/auto.master:編輯配置檔案
/mnt    	/etc/auto.samba
最終掛載點的上層目錄	自動定義子策略檔案

在這裡插入圖片描述

  1. vim /etc/auto.samba:編輯自動定義子策略檔案
samba   -fstype=cifs,username=使用者,password=密碼      ://伺服器端主機IP/共享目錄
最終掛載點	掛載引數			掛載資源

在這裡插入圖片描述

  1. vim /etc/autofs.conf:修改預設解除安裝時間
timeout = 3	#自動解除安裝時間預設為300秒
  1. systemctl restart autofs.service:重啟服務

8.3 客戶端測試

  1. cd /mnt/samba:進入掛載點目錄
  2. df:發現已經自動掛載
  3. cd:退出掛載點目錄,3s後(等待資源閒置超時,掛載資源自動解除安裝)
  4. df:3s後發現已經自動取消掛載

在這裡插入圖片描述
在這裡插入圖片描述

9. Samba多使用者掛載(cifs)

在客戶端如果用普通掛載方式,沒有用過使用者驗證的人也可以訪問samba服務,不安全

通過認證的使用者才可以掛載

9.1 客戶端安裝samba認證工具

dnf search cifs:查詢

dnf install cifs-utils.x86_64 -y:安裝

在這裡插入圖片描述

9.2 客戶端配置

  1. vim /root/smbauth:建立並編輯掛載使用者密碼檔案(防止每次掛載明文輸入密碼不安全)
username=sdsnzy1
password=sdsnzy1
  1. vim /etc/auto.master:編輯配置檔案
/-      /etc/auto.cifs
最終掛載點的上層目錄	自動定義子策略檔案
  1. vim /etc/auto.cifs:編輯自動定義子策略檔案
/samba	-fstype=cifs,credentials=/root/smbauth,sec=ntlmssp,multiuser	://192.168.43.101/LEE
credentials=/root/smbauth	#指定認證檔案(第一步編輯好的密碼檔案)
sec=ntlmssp	#指定認證型別
multiuser	#支援多使用者
  1. systemctl restart autofs.service:重啟服務

在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述

9.3 客戶端認證

  • cifscreds add -u Samba使用者 伺服器端主機IP:新增認證
  • cifscreds clearall:清除所有認證使用者
  • cifscreds clear -u Samba使用者:清除指定的已認證的使用者
  • cifscreds update -u Samba使用者:更新認證

實驗:

  1. su - kiosk:切換到普通使用者
  2. ls -l /mnt:無法檢視
  3. cifscreds add -u sdsnzy1 192.168.43.101:新增認證
  4. 可檢視,建立檔案
  5. 切換到其他普通使用者,沒認證無法檢視,很安全!!!

在這裡插入圖片描述
在這裡插入圖片描述

相關文章