20 Samba #
使用 Samba,就可以將 Unix 機器設定為 macOS、Windows 以及 OS/2 機器的檔案與列印伺服器。Samba 已經是一個開發至完全成熟且相當複雜的產品。使用 YaST 或手動編輯組態檔案來設定 Samba。
從 Samba 版本 4.17 開始,SMB1 通訊協定已在 SLE 中停用,且不再受支援。
20.1 術語 #
下列為 Samba 文件和 YaST 模組中常用的詞彙。
- SMB 通訊協定
Samba 使用基於 NetBIOS 服務的 SMB (伺服器訊息區塊) 通訊協定。Microsoft 發行該通訊協定的目的是讓來自其他廠商的軟體可以與執行 Microsoft 作業系統的伺服器建立連接。Samba 是在 TCP/IP 通訊協定的基礎上實作 SMB 通訊協定的,也就是說,所有用戶端上都必須安裝並啟用 TCP/IP。
提示:IBM Z:NetBIOS 支援IBM Z 僅支援經由 TCP/IP 的 SMB。在這些系統上不提供 NetBIOS 支援。
- CIFS 通訊協定
CIFS (Common Internet File System,通用網際網路檔案系統) 通訊協定是 SMB 通訊協定的早期版本,也稱為 SMB1。CIFS 定義 TCP/IP 上使用的標準遠端檔案系統存取通訊協定,讓使用者群組能夠透過網際網路協同工作並共用檔案。
SMB2 取代了 SMB1,前者最初是做為 Microsoft Windows Vista™ 的一部分發行的。Microsoft Windows 8™ 和 Microsoft Windows Server 2012 中的 SMB3 又取代了 SMB2。在最近的 Samba 版本中,出於安全原因預設已停用 SMB1。
- NetBIOS
NetBIOS 是專用於名稱解析和在網路上的電腦之間進行通訊的軟體介面 (API)。它允許連接至網路的機器保留自己的名稱。在保留後,就可以使用名稱來定址這些機器。在此沒有檢查名稱的中央程序。網路上的任何機器均可以保留所需數量的名稱,前提是這些名稱尚未使用。可以在不同網路通訊協定的基礎上實作 NetBIOS。一種相對簡單、不可路由的實作稱為 NetBEUI(常常與 NetBIOS API 混淆)。NetBIOS 也可以在 Novell IPX/SPX 通訊協定上執行。從版本 3.2 開始,Samba 支援在 IPv4 和 IPv6 上執行 NetBIOS。
透過 TCP/IP 傳送的 NetBIOS 名稱與
/etc/hosts
中使用的名稱或 DNS 定義的名稱沒有相同之處。NetBIOS 使用自己完全獨立的命名慣例。但為了方便管理或原生使用 DNS,建議您使用與 DNS 主機名稱對應的名稱。Samba 預設是使用此對應名稱。- Samba 伺服器
Samba 伺服器可為用戶端提供 SMB/CIFS 服務和 NetBIOS over IP 命名服務。對於 Linux,Samba 伺服器有三個精靈可用:
smbd
用於 SMB/CIFS 服務,nmbd
用於命名服務,winbind
用於驗證。- Samba 用戶端
Samba 用戶端是透過 SMB 通訊協定,使用 Samba 伺服器所提供之 Samba 服務的系統。常用作業系統 (例如 Windows 和 macOS) 都支援 SMB 通訊協定。TCP/IP 通訊協定必須安裝在所有的電腦上。Samba 提供適用於不同 Unix 類別的用戶端。就 Linux 而言,有一個 SMB 的核心模組,允許在 Linux 系統層級上整合 SMB 資源。您不必為 Samba 用戶端執行任何精靈。
- 共用
SMB 伺服器透過共用為用戶端提供資源。共用是指伺服器上的目錄 (包括其子目錄) 和印表機。透過共用名稱可輸出和存取共用。共用名稱可以設成任何名稱,它並不需要是輸出目錄的名稱。共用印表機也有相應的名稱。用戶端可以依據共用目錄和印表機的名稱來存取它們。
依照慣例,以美元字元 (
$
) 結尾的共用名稱會隱藏起來,也就是說,當使用 Windows 電腦瀏覽可用共用時,它們將不會顯示。- DC
網域控制器 (DC) 是處理網域中帳戶的伺服器。為了進行資料複製,在單個網域中可以使用多個網域控制器。
20.2 安裝 Samba 伺服器 #
若要安裝 Samba 伺服器,請啟動 YaST 並選取
› 。選擇 › ,然後選取 。請確認安裝所需套件,完成此安裝程序。20.3 啟動和停止 Samba #
您可以在開機時自動啟動 Samba 伺服器,也可以手動啟動或停止。啟動和停止規則是第 20.4.1 節 「使用 YaST 設定 Samba 伺服器」所述的 YaST Samba 伺服器組態的一部分。
在指令列中使用 systemctl stop smb nmb
可停止 Samba 所需的服務,使用 systemctl start nmb smb
可啟動這些服務。smb
服務會視需要處理 winbind
。
winbind
winbind
是一項獨立服務,同樣也是以單獨的 samba-winbind
套件提供。
20.4 設定 Samba 伺服器 #
SUSE® Linux Enterprise Server 中的 Samba 伺服器可以兩種方式設定:使用 YaST 設定或手動設定。手動設定組態可以提供較詳細的設定,但是缺乏 YaST GUI 提供的方便性。
20.4.1 使用 YaST 設定 Samba 伺服器 #
若要設定 Samba 伺服器,請啟動 YaST 並選取
› 。20.4.1.1 初始 Samba 組態 #
第一次啟動模組時,系統會啟動
對話方塊,提示您對伺服器管理進行一些基本設定。組態設定結束時,系統會提示您輸入 Samba 管理員密碼 ( )。之後再啟動該模組時,會顯示 對話方塊。對話方塊包含兩個步驟與一些選擇性的詳細設定:
- 工作群組或網域名稱
在
中選取現有的名稱,或輸入新的名稱,並按 。- Samba 伺服器類型
在下一步中,指定伺服器是應該做為主要網域控制器 (PDC)、備份網域控制器 (BDC) 還是不做為任何網域控制器。按
繼續。
如果不想繼續設定伺服器的詳細組態,請按一下
確認。然後,在最後一個快顯方塊中設定 。之後可在
對話方塊的 、 、 、 與 索引標籤中變更所有設定。20.4.1.2 在伺服器上啟用最新版本的 SMB 通訊協定 #
在執行最新版 SUSE Linux Enterprise Server 或其他最新 Linux 版本的用戶端上,預設已停用不安全的 SMB1/CIFS 通訊協定。但是,現有的 Samba 例項可能設定為僅使用 SMB1/CIFS 版通訊協定處理共用。若要與此類用戶端互動,需將 Samba 設定為至少使用 SMB 2.1 通訊協定來為共用提供服務。
在某些設定中只能使用 SMB1,例如,當這些設定相依於 SMB1/CIFS 的 Unix 延伸時。這些延伸尚未移植至更高的通訊協定版本。如果您遇到這種情況,請考慮變更設定,或參閱第 20.5.2 節 「在用戶端上掛接 SMB1/CIFS 共用」。
若要變更設定,請在組態檔案 /etc/samba/smb.conf
中設定全域參數 server max protocol = SMB2_10
。如需所有可能值的清單,請參閱 man smb.conf
。
20.4.1.3 進階 Samba 組態 #
第一次啟動 Samba 伺服器模組時,在執行第 20.4.1.1 節 「初始 Samba 組態」中所述的兩個初始步驟後, 對話方塊即會顯示。用此調整您的 Samba 伺服器組態。
編輯組態後,按一下
儲存設定。20.4.1.3.1 啟動伺服器 #
在此索引標籤中,您也可以開啟您的防火牆中的連接埠。若要執行此動作,請選取
。如果您有多個網路介面,請按一下 ,選取介面,並按一下 來選取 Samba 服務的網路介面。20.4.1.3.3 身分 #
在 (例如 LDAP 而非 TDB 資料庫),請按一下 。
索引標籤中,您可以決定主機關聯的網域 ( ),以及是否要在網路中使用替代的主機名稱 ( )。也可以使用 Microsoft Windows 網際網路名稱服務 (WINS) 進行名稱解析。在這種情況下,請啟用 ,並決定是否 。若要設定進階全域設定或使用者驗證來源20.4.1.3.4 可信網域 #
若要讓其他網域的使用者存取您的網域,請在
索引標籤中進行適當的設定。若要新增網域,請按一下 。若要移除所選網域,請按一下 。20.4.1.3.5 LDAP 設定 #
在索引標籤
中,您可決定 LDAP 伺服器是否使用驗證。若要測試 LDAP 伺服器的連接,請按一下 。若要查看進階 LDAP 設定或使用者預設值,請按一下 。如需 LDAP 組態的詳細資訊,請參閱Chapter 5, LDAP with 389 Directory Server。
20.4.2 手動設定伺服器 #
如果您想要使用 Samba 做為伺服器,請安裝 samba
。Samba 的主組態檔案是 /etc/samba/smb.conf
。這個檔案可以分成兩個邏輯部份。[global]
區段包含中央和全域設定。以下預設區段包含個別檔案與印表機共用:
[homes]
[profiles]
[users]
[groups]
[Printers]
[print$]
透過此方法,您可以設定不同的共用選項,或在 [global]
區段設定全域共用選項,這使得組態檔案更容易理解。
20.4.2.1 global 區段 #
應該修改 [global]
區段的以下參數,以符合網路設定的要求,從而讓其他機器能在 Windows 環境中透過 SMB 存取 Samba 伺服器。
workgroup = WORKGROUP
此行將 Samba 伺服器指定給工作群組。請以網路環境的相應工作群組取代
WORKGROUP
。Samba 伺服器會以其 DNS 名稱顯示,除非此名稱已指定給網路中的其他機器。如果沒有可用的 DNS 名稱,請使用netbiosname=MYNAME
設定伺服器名稱。如需更多有關此參數的詳細資料,請參閱smb.conf
手冊頁。os level = 20
此參數會觸發 Samba 伺服器是否嘗試變成其工作群組的 LMB (本地主要的瀏覽器)。為了避免現有 Windows 網路因 Samba 伺服器設定不當而中斷,應選擇非常低的值,如
2
。如需此主題的詳細資訊,可參閱《Samba 3 Howto》的「Network Browsing」(網路瀏覽) 一章;如需《Samba 3 Howto》的詳細資訊,請參閱第 20.9 節 「更多資訊」。如果網路中沒有其他的 SMB 伺服器 (例如,Windows 2000 伺服器),而且您希望 Samba 伺服器保留本地環境中存在的所有系統的清單,請將
os level
設成更高的值 (例如,65
)。接著就會將 Samba 伺服器選擇成本地網路的 LMB。當變更此設定值時,請小心地考慮這個值將會如何影響現有的 Windows 網路環境。首先請在獨立的網路中或在一天中非重要的時間測試變更。
wins support
和wins server
若要將 Samba 伺服器整合至含有主動 WINS 伺服器的現有 Windows 網路中,請啟用
wins server
選項,並將其值設為該 WINS 伺服器的 IP 位址。如果您的數台 Windows 機器連接至不同的子網路,但仍然需要看到彼此,則您需要設定 WINS 伺服器。若要將 Samba 伺服器變成像這樣的 WINS 伺服器,請設定
wins support = Yes
選項。請確定網路中只有一個 Samba 伺服器啟用了這個設定值。切勿在您的wins server
檔案中同時啟用選項wins support
和smb.conf
。
20.4.2.3 安全性層級 #
為了提高安全性,每個共用存取權都以密碼保護。SMB 提供下列幾種權限檢查方式:
- 使用者層級安全性 (
security = user
) 此變體在 SMB 中引入了使用者概念。每個使用者都必須以自己的密碼註冊伺服器。在註冊後,伺服器可以視使用者名稱將存取權授與個別輸出的共用。
- ADS 層級安全性 (
security = ADS
) 在這種模式下,Samba 在 Active Directory 環境中以網域成員的身分執行。要以此模式作業,執行 Samba 的機器需要安裝與設定 Kerberos。您必須讓使用 Samba 的機器加入 ADS 領域。可使用 YaST 的
模組完成此操作。- 網域層級安全性 (
security = domain
) 僅當機器已加入 Windows NT 網域時,此模式才能正常運作。Samba 會嘗試將使用者名稱和密碼傳遞給 Windows 主要或備用網域控制器,以驗證該資訊,這與 Windows Server 採用的方式相同。需要將加密密碼參數設定為
yes
。
共用、使用者、伺服器或網域層級安全性的選項會套用至整部伺服器。因為無法針對伺服器組態的個別共用提供共用層級的安全性,並針對其他的共用提供使用者層級的安全性。然而,您可以針對系統上每個設定的 IP 位址執行個別的 Samba 伺服器。
在《Samba 3 HOWTO》中可以找到關於此主題的詳細資訊。對於一個系統上的多個伺服器,應注意選項 interfaces
和 bind interfaces only
。
20.5 設定用戶端 #
用戶端只能透過 TCP/IP 存取 Samba 伺服器。NetBEUI 與透過 IPX 的 NetBIOS 無法與 Samba 一起使用。
20.5.1 使用 YaST 設定 Samba 用戶端 #
設定 Samba 用戶端以存取 Samba 或 Windows 伺服器上的資源 (檔案或印表機)。在
› 對話方塊中輸入 Windows 或 Active Directory 網域或工作群組。如果啟用了 ,將在 Samba、Windows 或 Kerberos 伺服器上執行使用者驗證。
按一下pam_mount
的手冊頁。
完成所有設定之後,在對話方塊中進行確認以完成組態設定。
20.5.2 在用戶端上掛接 SMB1/CIFS 共用 #
第一個 SMB 網路通訊協定版本 SMB1 或 CIFS 是不安全的早期通訊協定,其開發者 Microsoft 現已將其棄用。出於安全原因,SUSE Linux Enterprise Server 上的 mount
指令預設只會使用較新的通訊協定版本 (即 SMB 2.1、SMB 3.0 或 SMB 3.02) 掛接 SMB 共用。
但是,此項變更只會影響透過 /etc/fstab
執行的 mount
指令和掛接操作。您仍然可以透過明確要求的方式來使用 SMB1。請使用以下參數:
smbclient
工具。SUSE Linux Enterprise Server 隨附的 Samba 伺服器軟體。
在下面所述的設定中,由於只能使用 SMB1,此項預設設定會導致連接失敗:
使用不支援較新 SMB 通訊協定版本之 SMB 伺服器的設定。自 Windows 7 和 Windows Server 2008 開始,Windows 提供 SMB 2.1 支援。
依存於 SMB1/CIFS Unix 延伸的設定。這些延伸尚未移植至更高的通訊協定版本。
遵循以下指示可以解決安全問題。如需這些問題的詳細資訊,請參閱 https://blogs.technet.microsoft.com/filecab/2016/09/16/stop-using-smb1/。
儘快升級伺服器以使用更安全的 SMB 版本。
如需在 SUSE Linux Enterprise Server 上啟用適當通訊協定版本的資訊,請參閱第 20.4.1.2 節 「在伺服器上啟用最新版本的 SMB 通訊協定」。
如果您需要在目前的 SUSE Linux Enterprise Server 核心中啟用 SMB1 共用,請將選項 vers=1.0
新增至所用的 mount
指令列中:
#
mount -t cifs //HOST/SHARE /MOUNT_POINT –o username=USER_ID,vers=1.0
或者,您也可以在安裝的 SUSE Linux Enterprise Server 中全域啟用 SMB1 共用。若要實現此目的,請在 /etc/samba/smb.conf
中的 [global]
區段下新增以下代碼:
client min protocol = CORE
20.6 將 Samba 做為登入伺服器使用 #
在商務設定中,組織通常希望只允許已在中心例項上註冊的使用者進行存取。在以 Windows 為基礎的網路中,這個任務是由主要網域控制器 (PDC) 來處理。您可以使用設定為 PDC 的 Windows 伺服器,但也可借助 Samba 伺服器完成此任務。範例 20.3 「Smb.conf 中的 global 區段」中顯示了必須在 smb.conf
的 [global]
區段中設定的項目。
[global] workgroup = WORKGROUP domain logons = Yes domain master = Yes
需要準備符合 Winodws 加密格式的使用者帳戶與密碼。可使用指令 smbpasswd
-a name
來完成此任務。使用下列指令為電腦建立網域帳戶 (Windows 網域概念所需):
useradd hostname smbpasswd -a -m hostname
使用 useradd
指令,就會加上貨幣符號。與參數 -m
配合使用時,指令 smbpasswd
會自動插入此符號。加備註的組態範例 (/usr/share/doc/packages/samba/examples/smb.conf.SUSE
) 包含自動執行此任務的設定。
add machine script = /usr/sbin/useradd -g nogroup -c "NT Machine Account" \ -s /bin/false %m
為確保 Samba 可正確執行此程序檔,請選擇擁有所需之管理員權限的 Samba 使用者,並將其新增至 ntadmin
群組。這樣就可以透過下列指令將 Domain
Admin
狀態指定給此 Linux 群組內的所有使用者:
net groupmap add ntgroup="Domain Admins" unixgroup=ntadmin
20.7 設定了 Active Directory 的網路中的 Samba 伺服器 #
若您同時執行 Linux 伺服器與 Windows 伺服器,您可建立兩個獨立的驗證系統與網路,或將兩部伺服器透過一個中央驗證系統連接到一個網路。由於 Samba 可以與 Active Directory 網域協同運作,因此您可以將 SUSE Linux Enterprise Server 伺服器加入 Active Directory (AD) 網域。
若要加入 AD 網域,請執行下列步驟:
以
root
身份登入並啟動 YaST。啟動
› 。在
螢幕上的 欄位中輸入要加入的網域。圖 20.1︰ 確定 Windows 網域成員資格 #核取
,以在伺服器上使用 SMB 來源進行 Linux 驗證。按一下
,並在出現提示時確認要加入網域。為 Windows 管理員提供 AD 伺服器上的密碼,並按一下
。您的伺服器現在已可使用 Active Directory 網域控制器上的所有驗證資料。
如果環境中含有多個 Samba 伺服器,則建立的 UID 和 GID 不一致。分配給使用者的 UID 與使用者首次登入的順序有關,這會導致 UID 在不同伺服器之間出現衝突。若要解決此問題,您需要使用身分對應。請參閱 https://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/idmapper.html,以取得詳細資料。
20.8 進階主題 #
本節介紹用於管理 Samba 套件的用戶端部分與伺服器部分的進階方法。
20.8.1 使用 systemd
自動掛接 CIFS 檔案系統 #
在啟動時可以使用 systemd
來掛接 CIFS 共用。為此,請執行如下步驟:
建立掛接點:
>
mkdir -p PATH_SERVER_SHARED_FOLDER其中 PATH_SERVER_SHARED_FOLDER 是後續步驟中提及的
/cifs/shared
。建立
systemd
單元檔案,並從上一步驟中指定的路徑產生檔案名稱 (需以「-」取代其中的「/」),例如:>
sudo
touch /etc/systemd/system/cifs-shared.mount該檔案包含以下內容:
[Unit] Description=CIFS share from The-Server [Mount] What=//The-Server/Shared-Folder Where=/cifs/shared Type=cifs Options=rw,username=vagrant,password=admin [Install] WantedBy=multi-user.target
啟用服務:
>
sudo
systemctl enable cifs-shared.mount啟動服務:
>
sudo
systemctl start cifs-shared.mount若要驗證該服務是否正在執行,請執行以下指令:
>
sudo
systemctl status cifs-shared.mount若要確認 CIFS 共用路徑是否可用,請嘗試執行以下指令:
>
cd /cifs/shared>
ls -l total 0 -rwxrwxrwx. 1 root root 0 Oct 24 22:31 hello-world-cifs.txt drwxrwxrwx. 2 root root 0 Oct 24 22:31 subfolder -rw-r--r--. 1 vagrant vagrant 0 Oct 28 21:51 testfile.txt
20.8.2 Btrfs 上的透明檔案壓縮 #
Samba 允許用戶端針對 Btrfs 檔案系統中的共用遠端操作檔案與目錄壓縮旗標。Windows 檔案總管可讓使用者透過
› › 對話方塊來標識要進行透明壓縮的檔案/目錄:帶有壓縮旗標的檔案將以透明方式進行壓縮,當使用者存取或修改這些檔案時,基礎檔案系統會將其解壓縮。這通常可以節省儲存容量,不過,在存取檔案時會造成額外的 CPU 負擔。除非新檔案和目錄是使用 FILE_NO_COMPRESSION 選項建立的,否則,它們會繼承父目錄的壓縮旗標。
Windows 檔案總管以不同的顯示區分壓縮檔案/目錄和未壓縮檔案/目錄:
啟用 Samba 共用壓縮的方法有兩種,一種是手動將以下內容
vfs objects = btrfs
新增至 /etc/samba/smb.conf
中的共用組態,或者使用 YaST: › › ,然後核取 。
如需 Btrfs 上壓縮功能的一般綜覽,請參閱第 1.2.2.1 節 「掛接壓縮的 Btrfs 檔案系統」。
20.8.3 快照 #
快照也稱為陰影副本,是指某個檔案系統子磁碟區在特定時間點的狀態副本。在 Linux 中,使用 Snapper 工具來管理這些快照。Btrfs 檔案系統或簡易佈建的 LVM 磁碟區支援快照。Samba 套裝軟體支援透過伺服器端和用戶端的 FSRVP 通訊協定管理遠端快照。
20.8.3.1 以前的版本 #
可以將 Samba 伺服器上的快照做為先前版本的檔案或目錄向遠端 Windows 用戶端公開。
若要在 Samba 伺服器上啟用快照,必須符合以下條件:
SMB 網路共用存放在 Btrfs 子磁碟區上。
SMB 網路共用路徑中包含相關的 Snapper 組態檔案。可以使用以下指令建立 snapper 檔案
>
sudo
snapper -c <cfg_name> create-config/path/to/share
如需 Snapper 的詳細資訊,請參閱第 10 章 「使用 Snapper 進行系統復原和快照管理」。
必須允許相關使用者存取快照目錄樹。如需詳細資訊,請參閱 vfs_snapper 手冊頁 (
man 8 vfs_snapper
) 的 PERMISSIONS (權限) 部分。
若要支援遠端快照,需要修改 /etc/samba/smb.conf
檔案。若要完成此操作,您可以選取 › › ,或者使用以下指令以手動方式增強相關的共用區段
vfs objects = snapper
請注意,只有在重新啟動 Samba 服務後,以手動方式對 smb.conf
進行的變更才能生效:
>
sudo
systemctl restart nmb smb
設定快照後,可以透過 Windows 檔案總管中某個檔案或目錄的
索引標籤存取 Snapper 為 Samba 共用路徑建立的快照。20.8.3.2 遠端共用快照 #
依預設,只能在 Samba 伺服器本地透過 Snapper 指令列公用程式,或者使用 Snapper 的時間軸功能來建立和刪除快照。
可將 Samba 設定為使用檔案伺服器遠端 VSS 通訊協定 (File Server Remote VSS Protocol,FSRVP) 來處理來自遠端主機的共用快照建立和刪除要求。
除了 第 20.8.3.1 節 「以前的版本」 所述的組態和先決條件以外,還需要在 /etc/samba/smb.conf
中指定以下全域組態:
[global] rpc_daemon:fssd = fork registry shares = yes include = registry
然後,FSRVP 用戶端 (包括 Samba 的 rpcclient
以及 Windows Server 2012 的 DiskShadow.exe
) 便可以指示 Samba 為指定的共用建立或刪除快照,並將該快照公開為新共用。
20.8.3.3 使用 rpcclient
從遠端的 Linux 中管理快照 #
samba-client
套件中有一個 FSRVP 用戶端,它可以遠端要求 Windows/Samba 伺服器建立並公開指定共用的快照。然後,您可以使用 SUSE Linux Enterprise Server 中的現有工具掛接公開的共用,並備份其檔案。向伺服器發出的要求將使用 rpcclient
二進位檔案傳送。
rpcclient
要求 Windows Server 2012 共用快照 #
以 EXAMPLE
網域中管理員的身分連接到 win-server.example.com
伺服器:
#
rpcclient -U 'EXAMPLE\Administrator' ncacn_np:win-server.example.com[ndr64,sign]
Enter EXAMPLE/Administrator's password:
檢查 SMB 共用是否對 rpcclient
可見:
#
rpcclient $> netshareenum
netname: windows_server_2012_share
remark:
path: C:\Shares\windows_server_2012_share
password: (null)
檢查 SMB 共用是否支援建立快照:
#
rpcclient $> fss_is_path_sup windows_server_2012_share \
UNC \\WIN-SERVER\windows_server_2012_share\ supports shadow copy requests
要求建立共用快照:
#
rpcclient $> fss_create_expose backup ro windows_server_2012_share
13fe880e-e232-493d-87e9-402f21019fb6: shadow-copy set created
13fe880e-e232-493d-87e9-402f21019fb6(1c26544e-8251-445f-be89-d1e0a3938777): \
\\WIN-SERVER\windows_server_2012_share\ shadow-copy added to set
13fe880e-e232-493d-87e9-402f21019fb6: prepare completed in 0 secs
13fe880e-e232-493d-87e9-402f21019fb6: commit completed in 1 secs
13fe880e-e232-493d-87e9-402f21019fb6(1c26544e-8251-445f-be89-d1e0a3938777): \
share windows_server_2012_share@{1C26544E-8251-445F-BE89-D1E0A3938777} \
exposed as a snapshot of \\WIN-SERVER\windows_server_2012_share\
確認伺服器是否已公開快照共用:
#
rpcclient $> netshareenum
netname: windows_server_2012_share
remark:
path: C:\Shares\windows_server_2012_share
password: (null)
netname: windows_server_2012_share@{1C26544E-8251-445F-BE89-D1E0A3938777}
remark: (null)
path: \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy{F6E6507E-F537-11E3-9404-B8AC6F927453}\Shares\windows_server_2012_share\
password: (null)
嘗試刪除快照共用:
#
rpcclient $> fss_delete windows_server_2012_share \
13fe880e-e232-493d-87e9-402f21019fb6 1c26544e-8251-445f-be89-d1e0a3938777
13fe880e-e232-493d-87e9-402f21019fb6(1c26544e-8251-445f-be89-d1e0a3938777): \
\\WIN-SERVER\windows_server_2012_share\ shadow-copy deleted
確認伺服器是否已移除快照共用:
#
rpcclient $> netshareenum
netname: windows_server_2012_share
remark:
path: C:\Shares\windows_server_2012_share
password: (null)
20.8.3.4 使用 DiskShadow.exe
從遠端的 Windows 中管理快照 #
您也可以從 Windows 用戶端中管理 Linux Samba 伺服器上 SMB 共用的快照。Windows Server 2012 提供了 DiskShadow.exe
公用程式,該公用程式可以使用與第 20.8.3.3 節 「使用 rpcclient
從遠端的 Linux 中管理快照」中所述的 rpcclient
指令類似的方式管理遠端共用。請注意,首先您需要妥善設定 Samba 伺服器。
以下範例程序說明了如何設定 Samba 伺服器,以使 Windows 用戶端能夠管理其共用的快照。請注意,EXAMPLE 是測試環境中使用的 Active Directory 網域,fsrvp-server.example.com
是 Samba 伺服器的主機名稱,/srv/smb
是 SMB 共用的路徑。
透過 YaST 加入到 Active Directory 網域。如需詳細資訊,請參閱第 20.7 節 「設定了 Active Directory 的網路中的 Samba 伺服器」。
確定 Active Directory 網域的 DNS 項目正確無誤:
fsrvp-server:~ # net -U 'Administrator' ads dns register \ fsrvp-server.example.com <IP address> Successfully registered hostname with DNS
在
/srv/smb
處建立 Btrfs 子磁碟區fsrvp-server:~ # btrfs subvolume create /srv/smb
為路徑
/srv/smb
建立 Snapper 組態檔案:fsrvp-server:~ # snapper -c <snapper_config> create-config /srv/smb
建立路徑為
/srv/smb
的新共用,並選取 YaST 的 核取方塊。確定將以下程式碼片段新增至/etc/samba/smb.conf
的 global 區段,如 第 20.8.3.2 節 「遠端共用快照」 所述:[global] rpc_daemon:fssd = fork registry shares = yes include = registry
使用
systemctl restart nmb smb
重新啟動 Samba設定 Snapper 權限:
fsrvp-server:~ # snapper -c <snapper_config> set-config \ ALLOW_USERS="EXAMPLE\\\\Administrator EXAMPLE\\\\win-client$"
確定還允許所有
ALLOW_USERS
例項存取.snapshots
子目錄。fsrvp-server:~ # snapper -c <snapper_config> set-config SYNC_ACL=yes
重要:路徑逸出請注意「\」逸出!請逸出兩次,以確保
/etc/snapper/configs/<snapper_config>
中儲存的值逸出一次。"EXAMPLE\win-client$" 對應於 Windows 用戶端電腦帳戶。對此帳戶進行驗證後,Windows 將發出初始 FSRVP 要求。
授予 Windows 用戶端帳戶必要的權限:
fsrvp-server:~ # net -U 'Administrator' rpc rights grant \ "EXAMPLE\\win-client$" SeBackupPrivilege Successfully granted rights.
不需要對 "EXAMPLE\Administrator" 使用者執行上一條指令,因為已授予該使用者權限。
DiskShadow.exe
的實際運用 #開機 Windows Server 2012 (範例主機名稱為 WIN-CLIENT)。
就像在 SUSE Linux Enterprise Server 上一般,加入到同一個 Active Directory 網域 EXAMPLE。
重新開機。
開啟 Powershell。
啟動
DiskShadow.exe
,然後開始執行備份程序:PS C:\Users\Administrator.EXAMPLE> diskshadow.exe Microsoft DiskShadow version 1.0 Copyright (C) 2012 Microsoft Corporation On computer: WIN-CLIENT, 6/17/2014 3:53:54 PM DISKSHADOW> begin backup
指定陰影副本在程式結束、重設和重新開機期間持續存在。
DISKSHADOW> set context PERSISTENT
檢查指定的共用是否支援快照,然後建立一個快照:
DISKSHADOW> add volume \\fsrvp-server\sles_snapper DISKSHADOW> create Alias VSS_SHADOW_1 for shadow ID {de4ddca4-4978-4805-8776-cdf82d190a4a} set as \ environment variable. Alias VSS_SHADOW_SET for shadow set ID {c58e1452-c554-400e-a266-d11d5c837cb1} \ set as environment variable. Querying all shadow copies with the shadow copy set ID \ {c58e1452-c554-400e-a266-d11d5c837cb1} * Shadow copy ID = {de4ddca4-4978-4805-8776-cdf82d190a4a} %VSS_SHADOW_1% - Shadow copy set: {c58e1452-c554-400e-a266-d11d5c837cb1} %VSS_SHADOW_SET% - Original count of shadow copies = 1 - Original volume name: \\FSRVP-SERVER\SLES_SNAPPER\ \ [volume not on this machine] - Creation time: 6/17/2014 3:54:43 PM - Shadow copy device name: \\FSRVP-SERVER\SLES_SNAPPER@{31afd84a-44a7-41be-b9b0-751898756faa} - Originating machine: FSRVP-SERVER - Service machine: win-client.example.com - Not exposed - Provider ID: {89300202-3cec-4981-9171-19f59559e0f2} - Attributes: No_Auto_Release Persistent FileShare Number of shadow copies listed: 1
完成備份程序:
DISKSHADOW> end backup
建立快照後,嘗試將它刪除,並驗證刪除結果:
DISKSHADOW> delete shadows volume \\FSRVP-SERVER\SLES_SNAPPER\ Deleting shadow copy {de4ddca4-4978-4805-8776-cdf82d190a4a} on volume \ \\FSRVP-SERVER\SLES_SNAPPER\ from provider \ {89300202-3cec-4981-9171-19f59559e0f2} [Attributes: 0x04000009]... Number of shadow copies deleted: 1 DISKSHADOW> list shadows all Querying all shadow copies on the computer ... No shadow copies found in system.
20.9 更多資訊 #
手冊頁:: 若要查看隨 samba 套件一同安裝的所有
man
頁面清單,請執行apropos samba
。使用man NAME_OF_MAN_PAGE
開啟任一手冊頁。SUSE 特定的讀我檔案:: 套件samba-client 包含檔案
/usr/share/doc/packages/samba/README.SUSE
。其他套件文件:: 使用
zypper install samba-doc
安裝samba-doc
套件。此文件將安裝到
/usr/share/doc/packages/samba
。其中包含 HTML 版本的手冊頁以及範例組態文件庫 (例如smb.conf.SUSE
)。線上文件:: https://wiki.samba.org/index.php/User_Documentation 上的 Samba Wiki 包含詳盡的 User Documentation。