从 Samba 4.17 版本开始,SMB1 协议已在 openSUSE Leap 中禁用。
以下是在 Samba 文档和 YaST 模块中使用的术语。
Samba 使用 SMB(服务器消息块)协议,该协议基于 NetBIOS 服务。Microsoft 发布该协议是为了使其他制造商的软件能够与运行 Microsoft 操作系统的服务器建立连接。Samba 在 TCP/IP 协议之上实现 SMB 协议,这意味着 TCP/IP 必须安装并启用在所有客户端上。
CIFS(通用 Internet 文件系统)协议是 SMB 协议的早期版本,也称为 SMB1。CIFS 定义了一种用于在 TCP/IP 上使用的标准远程文件系统访问协议,使用户组能够协同工作并在 Internet 上共享文档。
SMB1 已被 SMB2 取代,该协议首次作为 Microsoft Windows Vista™ 的一部分发布。随后又被 Microsoft Windows 8™ 和 Microsoft Windows Server 2012 中的 SMB3 取代。在 Samba 的最新版本中,出于安全原因,SMB1 默认情况下已禁用。
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 服务器向客户端提供 SMB/CIFS 服务和 NetBIOS over IP 命名服务。对于 Linux,Samba 服务器有三个守护进程:smbd 用于 SMB/CIFS 服务,nmbd 用于命名服务,winbind 用于身份验证。
Samba 客户端是一个使用 Samba 服务通过 SMB 协议从 Samba 服务器获取服务的系统。常见的操作系统,如 Windows 和 macOS,都支持 SMB 协议。所有计算机上都必须安装 TCP/IP 协议。Samba 为不同的 Unix 变体提供客户端。对于 Linux,有一个用于 SMB 的内核模块,允许在 Linux 系统级别集成 SMB 资源。您不需要为 Samba 客户端运行任何守护进程。
SMB 服务器通过 共享 向客户端提供资源。共享是服务器上的目录(包括其子目录)和打印机。共享通过 共享名称 导出,可以通过该名称访问。共享名称可以设置为任何名称,不必是导出目录的名称。共享打印机也分配有名称。客户端可以通过其名称访问共享目录和打印机。
按约定,以美元符号 ($) 结尾的共享名称是隐藏的。在使用 Windows 计算机浏览可用共享时,它们将不会显示。
域控制器 (DC) 是处理域中帐户的服务器。为了进行数据复制,可以在单个域中拥有多个域控制器。
您可以自动(在启动期间)或手动启动或停止 Samba 服务器。启动和停止策略是 YaST Samba 服务器配置的一部分,如 第 21.4.1 节,“使用 YaST 配置 Samba 服务器” 中所述。
从命令行,使用 systemctl stop smb nmb 停止 Samba 所需的服务,并使用 systemctl start nmb smb 启动它们。如果需要,smb 服务会负责 winbind。
winbind
winbind 是一种独立的服務,也作为单独的 samba-winbind 包提供。
在 openSUSE® Leap 中,Samba 服务器可以通过两种不同的方式进行配置:使用 YaST 或手动。手动配置提供更高的详细程度,但缺乏 YaST GUI 的便利性。
要配置 Samba 服务器,请启动 YaST 并选择 › 。
首次启动模块时,将启动 对话框,提示您就服务器管理做出一些基本决策。配置结束时,它会提示输入 Samba 管理员密码 ()。对于后续启动,将显示 对话框。
对话框由两个步骤和可选的详细设置组成
从 中选择现有名称,或输入新名称,然后单击 。
在下一步中,指定您的服务器是充当主域控制器 (PDC)、备份域控制器 (BDC) 还是不充当域控制器。使用 继续。
如果您不想进行详细的服务器配置,请使用 确认。然后在最终的弹出框中,设置 。
您可以在 、、、 和 选项卡中,稍后更改所有设置。
在运行当前版本 openSUSE Leap 或其他最新 Linux 版本的客户端上,默认情况下禁用不安全的 SMB1/CIFS 协议。但是,现有的 Samba 实例可能配置为仅使用 SMB1/CIFS 版本的协议提供共享。为了与此类客户端交互,您需要配置 Samba 以使用至少 SMB 2.1 协议提供共享。
存在只能使用 SMB1 的设置,例如,因为它们依赖于 SMB1/CIFS 的 Unix 扩展。这些扩展尚未移植到较新的协议版本。如果您遇到这种情况,请考虑更改您的设置,或参阅 第 21.5.2 节,“在客户端上挂载 SMB1/CIFS 共享”。
为此,在配置文件 /etc/samba/smb.conf 中,设置全局参数 server max protocol = SMB2_10。有关所有可能的值的列表,请参阅 man smb.conf。
在 Samba 服务器模块首次启动期间, 对话框将直接出现在 第 21.4.1.1 节,“初始 Samba 配置” 中描述的两个初始步骤之后。使用它来调整您的 Samba 服务器配置。
编辑完配置后,单击 以保存您的设置。
在 选项卡中,配置 Samba 服务器的启动方式。要在系统每次启动时启动该服务,请选择 。要激活手动启动,请选择 。有关启动 Samba 服务器的更多信息,请参阅 第 21.3 节,“启动和停止 Samba”。
在此选项卡中,您还可以打开防火墙中的端口。要执行此操作,请选择 。如果您有多个网络接口,请通过单击 、选择接口并单击 来选择 Samba 服务的网络接口。
在 选项卡中,您可以确定主机关联的域()以及是否在网络中使用其他主机名()。也可以使用 Microsoft Windows Internet Name Service (WINS) 进行名称解析。在这种情况下,激活 并决定是否 。要设置专家级全局设置或设置用户身份验证源,例如 LDAP 代替 TDB 数据库,请单击 例如 LDAP 代替 TDB 数据库, 。
如果您打算将 Samba 用作服务器,请安装 samba。Samba 的主配置文件是 /etc/samba/smb.conf。此文件可以分为两个逻辑部分。 [global] 部分包含中央和全局设置。以下默认部分包含单个文件和打印机共享。
[homes]
[profiles]
[users]
[groups]
[printers]
[print$]
使用这种方法,可以以不同的方式或在 [global] 部分全局设置共享的选项,从而使配置文件更易于理解。
应修改 [global] 部分的以下参数,以匹配您的网络设置要求,以便其他机器可以通过 SMB 在 Windows 环境中访问您的 Samba 服务器。
workgroup = WORKGROUP此行将 Samba 服务器分配到一个工作组。将 WORKGROUP 替换为您的网络环境中的适当工作组。除非该名称已分配给网络中的其他机器,否则您的 Samba 服务器将显示在其 DNS 名称下。如果 DNS 名称不可用,请使用 netbiosname=MYNAME 设置服务器名称。有关此参数的更多详细信息,请参阅 smb.conf man 页面。
os level = 20此参数触发您的 Samba 服务器是否尝试成为其工作组的 LMB(本地主浏览器)。选择一个非常低的值,例如 2,以避免配置不当的 Samba 服务器对现有的 Windows 网络造成任何干扰。有关此主题的更多信息,请参阅 Samba 3 HOWTO 的网络浏览章节。有关 Samba 3 HOWTO 的更多信息,请参阅 第 21.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 服务器启用此设置。在您的 smb.conf 文件中,不得同时启用 wins server 和 wins support 选项。
为了提高安全性,可以使用密码保护每个共享访问。SMB 提供以下检查权限的方式
security = user)此变体将用户概念引入 SMB。每个用户必须使用自己的密码在服务器上注册。注册后,服务器可以根据用户名授予对单个导出共享的访问权限。
security = ADS)在此模式下,Samba 将作为 Active Directory 环境中的域成员运行。要在此模式下运行,运行 Samba 的机器需要安装并配置 Kerberos。您必须使用 YaST 模块将使用 Samba 的机器加入 ADS 领域。
security = domain)只有当机器已加入 Windows NT 域时,此模式才能正常工作。Samba 将尝试通过将其传递到 Windows 主域或备份域控制器来验证用户名和密码,就像 Windows 服务器一样。它期望将加密密码参数设置为 yes。
共享、用户、服务器或域级别安全的选择适用于整个服务器。不可能为服务器配置提供共享级别安全,而其他配置则提供用户级别安全。但是,您可以在系统上的每个配置的 IP 地址上运行单独的 Samba 服务器。
有关此主题的更多信息,请参阅 Samba 3 HOWTO。对于一个系统上的多个服务器,请注意 interfaces 和 bind interfaces only 选项。
客户端只能通过 TCP/IP 访问 Samba 服务器。不能使用 NetBEUI 和通过 IPX 的 NetBIOS 与 Samba 一起使用。
配置 Samba 客户端以访问 Samba 或 Windows 服务器上的资源(文件或打印机)。在 › 对话框中输入 Windows 或 Active Directory 域或工作组。如果您激活 ,则用户身份验证将通过 Samba、Windows 或 Kerberos 服务器运行。
单击 以获取高级配置选项。例如,使用 表启用自动挂载服务器主目录进行身份验证。这样,当托管在 CIFS 上时,用户可以访问他们的主目录。有关详细信息,请参阅 pam_mount man 页面。
完成所有设置后,确认对话框以完成配置。
SMB 网络协议的第一版本 SMB1 或 CIFS 是一种旧的不安全协议,其原始创建者 Microsoft 已弃用该协议。出于安全原因,openSUSE Leap 上的 mount 命令默认情况下仅使用较新的协议版本挂载 SMB 共享,即 SMB 2.1、SMB 3.0 或 SMB 3.02。
但是,此更改仅影响 mount 和通过 /etc/fstab 挂载。SMB1 仍然可以通过显式要求它来使用。使用以下方法:
smbclient 工具。
openSUSE 附带的 Samba 服务器软件。
在某些设置中,此默认设置会导致连接失败,因为只能使用 SMB1。
使用不支持较新 SMB 协议版本的 SMB 服务器的设置。Windows 从 Windows 7 和 Windows Server 2008 开始提供 SMB 2.1 支持。
依赖于 SMB1/CIFS 的 Unix 扩展的设置。这些扩展尚未移植到较新的协议版本。
按照以下说明操作可能会导致利用安全问题。有关这些问题的更多信息,请参阅 https://blogs.technet.microsoft.com/filecab/2016/09/16/stop-using-smb1/。
尽快升级您的服务器,以允许使用更安全的 SMB 版本。
有关在 openSUSE Leap 上启用合适的协议版本的信息,请参阅 第 21.4.1.2 节,“在服务器上启用当前版本的 SMB 协议”。
如果您需要在当前的 openSUSE Leap 内核上启用 SMB1 共享,请将选项 vers=1.0 添加到您使用的 mount 命令中。
# mount -t cifs //HOST/SHARE /MOUNT_POINT –o username=USER_ID,vers=1.0或者,您可以在您的 openSUSE Leap 安装中全局启用 SMB1 共享。为此,请将以下内容添加到 /etc/samba/smb.conf 的 [global] 部分下。
client min protocol = CORE
在业务环境中,通常希望仅允许访问在中央实例上注册的用户。在基于 Windows 的网络中,此任务由主域控制器 (PDC) 处理。您可以使用配置为 PDC 的 Windows Server,但此任务也可以使用 Samba 服务器完成。必须在 [global] 部分的 smb.conf 中进行的条目如 示例 21.3,“smb.conf 中的全局部分” 所示。
[global]
workgroup = WORKGROUP
domain logons = Yes
domain master = Yes需要以符合 Windows 要求的加密格式准备用户帐户和密码。使用命令 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 组。然后,可以使用命令将属于此 Linux 组的所有用户分配 Domain Admin 状态
net groupmap add ntgroup="Domain Admins" unixgroup=ntadmin
如果您同时运行 Linux 服务器和 Windows 服务器,您可以构建两个独立的身份验证系统和网络,或者将服务器连接到具有一个中央身份验证系统的网络。由于 Samba 可以与 Active Directory 域配合使用,您可以将您的 openSUSE Leap 服务器与 Active Directory (AD) 域连接。
要加入 AD 域,请按以下步骤操作
以 root 用户身份登录并启动 YaST。
启动 › 。
在 字段中的 屏幕中输入要加入的域。
选中 以在服务器上使用 SMB 源进行 Linux 身份验证。
单击 并确认域加入(如果系统提示)。
提供 AD 服务器上 Windows 管理员的密码,然后单击 。
现在,您的服务器已设置为从 Active Directory 域控制器提取所有身份验证数据。
或者,您可以使用 realmd 工具连接到 Active Directory。有关详细信息,请参阅 第 21.7.1 节,“使用 realmd 管理 Active Directory”。
在具有多个 Samba 服务器的环境中,UID 和 GID 将不会一致创建。分配给用户的 UID 将取决于他们首次登录的顺序,这会导致服务器之间的 UID 冲突。要解决此问题,您需要使用身份映射。有关更多详细信息,请参阅 https://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/idmapper.html。
realmd 是一个 DBus 服务,允许您配置网络身份验证和域成员身份。
realmd 通过检查 DNS SRV 记录来发现可以使用或配置哪些域或领域。确保为要发现的 Active Directory 域提供 DNS SRV 记录;以下示例中的 domain.example.com
_ldap._tcp.dc._msdcs.domain.example.com.
DNS 记录应由 Active Directory 附带的 DNS 服务器自动创建。
要发现特定的域名,请运行命令
>sudorealm discover --verbose domain.example.com* Resolving: _ldap._tcp.dc._msdcs.domain.example.com * Sending MS-CLDAP ping to: 192.168.20.10 * Sending MS-CLDAP ping to: 192.168.12.12 * Successfully discovered: domain.example.com ...
要加入特定的 Active Directory 域,请运行命令
>sudorealm join --verbose domain.example.com
加入 Active Directory 域后,您可以配置机器以使用域帐户进行登录。为此,请运行
>sudorealm permit --realm domain.example.com --all
要通过在命令中指定它们来仅允许特定帐户,请执行以下操作
>sudorealm permit --realm domain.example.com DOMAIN\\USERNAME DOMAIN\\USERNAME
要拒绝来自任何域帐户的登录,请使用以下命令
>sudorealm deny --realm domain.example.com --all
本节介绍管理 Samba 套件客户端和服务器部分的更高级技术。
您可以使用 systemd 在启动时挂载 CIFS 共享。为此,请按如下所述操作
创建挂载点
> mkdir -p PATH_SERVER_SHARED_FOLDER其中 PATH_SERVER_SHARED_FOLDER 在后续步骤中为 /cifs/shared。
创建 systemd 单元文件并从上一步中指定的路径生成文件名,其中 "/" 替换为 "-",例如
>sudotouch /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
启用服务
>sudosystemctl enable cifs-shared.mount
启动服务
>sudosystemctl start cifs-shared.mount
要验证服务是否正在运行,请运行命令
>sudosystemctl 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
Samba 允许客户端远程操作放置在 Btrfs 文件系统上的共享的文件和目录压缩标志。Windows 资源管理器提供了通过 › › 对话框标记文件/目录进行透明压缩的功能。
标记为压缩的文件和目录由基础文件系统在访问或修改时透明地压缩和解压缩。通常,这会以额外的 CPU 开销为代价节省存储容量。新文件和目录从父目录继承压缩标志,除非使用 FILE_NO_COMPRESSION 选项创建。
Windows 资源管理器以不同的方式呈现压缩文件和目录与未压缩的文件和目录。
您可以手动通过添加来启用 Samba 共享压缩
vfs objects = btrfs
到 /etc/samba/smb.conf 中的共享配置,或使用 YaST: › › ,并选中 。
快照,也称为 Shadow Copies,是文件系统子卷在某个时间点的状态的副本。Snapper 是 Linux 中管理这些快照的工具。快照受支持在 Btrfs 文件系统或稀疏配置的 LVM 卷上。Samba 套件支持通过 FSRVP 协议在服务器和客户端上管理远程快照。
Samba 服务器上的快照可以作为文件或目录的以前版本暴露给远程 Windows 客户端。
要在 Samba 服务器上启用快照,必须满足以下条件
SMB 网络共享位于 Btrfs 子卷上。
SMB 网络共享路径具有相关的 Snapper 配置文件。您可以使用以下命令创建 snapper 文件
>sudosnapper -c <cfg_name> create-config/path/to/share
有关 Snapper 的更多信息,请参阅 第 3 章,使用 Snapper 进行系统恢复和快照管理。
快照目录树必须允许相关用户的访问。有关更多信息,请参阅 vfs_snapper 手册页的 PERMISSIONS 部分 (man 8 vfs_snapper)。
要支持远程快照,您需要修改 /etc/samba/smb.conf 文件。您可以通过 › › 或手动通过增强相关的共享部分来执行此操作
vfs objects = snapper
请注意,对于对 smb.conf 的手动更改生效,需要重新启动 Samba 服务
>sudosystemctl restart nmb smb
配置后,Snapper 为 Samba 共享路径创建的快照可以从 Windows 资源管理器中的文件或目录的 选项卡访问。
默认情况下,只能通过 Snapper 命令行实用程序或使用 Snapper 的时间线功能在 Samba 服务器上本地创建和删除快照。
可以配置 Samba 以使用文件服务器远程 VSS 协议 (FSRVP) 处理来自远程主机的共享快照创建和删除请求。
除了在 第 21.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 为给定的共享创建或删除快照,并将快照作为新的共享公开。
The samba-client 包包含一个 FSRVP 客户端,可以远程请求 Windows/Samba 服务器创建并公开给定共享的快照。然后,您可以使用 openSUSE Leap 中的现有工具挂载公开的共享并备份其文件。请求会使用 rpcclient 二进制文件发送到服务器。
rpcclient 请求 Windows Server 2012 共享快照 #以管理员身份连接到 win-server.example.com 服务器,位于 EXAMPLE 域中
# rpcclient -U 'EXAMPLE\Administrator' ncacn_np:win-server.example.com[ndr64,sign]
Enter EXAMPLE/Administrator's password:检查 rpcclient 是否可见 SMB 共享
# 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)您也可以从 Windows 客户端管理 Linux Samba 服务器上的 SMB 共享快照。Windows Server 2012 包含 DiskShadow.exe 实用程序,它可以像 第 21.8.3.3 节,“使用 rpcclient 从 Linux 远程管理快照” 中描述的 rpcclient 命令一样管理远程共享。请注意,您需要首先仔细设置 Samba 服务器。
以下是设置 Samba 服务器的示例过程,以便 Windows 客户端可以管理其共享的快照。请注意,EXAMPLE 是测试环境中的 Active Directory 域,fsrvp-server.example.com 是 Samba 服务器的主机名,/srv/smb 是 SMB 共享的路径。
通过 YaST 加入 Active Directory 域。 有关更多信息,请参阅 第 21.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 的全局部分,如 第 21.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)。
加入与 openSUSE Leap 相同的 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.手册页: 要查看与 samba 包一起安装的所有 man 手册页的列表,请运行 apropos samba。使用 man 手册页名称 打开任何手册页。
SUSE 特定的 README 文件: samba-client 包包含文件 /usr/share/doc/packages/samba/README.SUSE。
其他软件包文档: 使用 zypper install samba-doc 安装 samba-doc 包。
此文档安装到 /usr/share/doc/packages/samba。它包含手册页的 HTML 版本和示例配置库(例如 smb.conf.SUSE)。
在线文档: Samba wiki 在 https://wiki.samba.org/index.php/User_Documentation 处包含广泛的用户文档。