搜索

第 3 章 使用 Samba 作为服务器

download PDF

Samba 在Red Hat Enterprise Linux中实现了服务器消息块(SMB)协议。SMB 协议用于访问服务器上的资源,如文件共享和共享打印机。此外,Samba 实现了Microsoft Windows 使用的分布式计算环境远程过程调用(DCE RPC)协议。

您可以以以下方式运行 Samba:

  • Active Directory(AD)或 NT4 域成员
  • 独立服务器
  • NT4 主域控制器(PDC)或备份域控制器(BDC)

    注意

    红帽支持仅在支持 NT4 域的 Windows 版本的现有安装中支持 PDC 和 BDC 模式。红帽建议不要设置新的 Samba NT4 域,因为 Windows 7 和 Windows Server 2008 R2之后的Microsoft操作系不支持 NT4 域。

    红帽不支持将 Samba 作为 AD 域控制器(DC)来运行。

有别于安装模式,您可以选择共享目录和打印机。这可让 Samba 充当文件和打印服务器。

3.1. 了解不同的 Samba 服务和模式

samba 软件包提供多个服务。根据您的环境和您要配置的场景,您需要一个或多个这些服务,并在不同模式下配置 Samba。

3.1.1. Samba 服务

Samba 提供以下服务:

smbd

此服务使用 SMB 协议提供文件共享和打印服务。另外,该服务负责资源锁定和验证连接用户。对于验证域成员,smbd 需要 winbinddsmb systemd服务启动并停止smbd守护进程。

要使用smbd服务,请安装samba软件包。

nmbd

此服务通过 IPv4 协议使用 NetBIOS 提供主机名和 IP 解析。除了名字解析之外,nmbd服务还支持浏览 SMB 网络来查找域、工作组、主机、文件共享和打印机。为此,服务可将此信息直接报告给广播客户端,或者将其转发到本地或主浏览器。nmb systemd服务启动并停止nmbd守护进程。

请注意,现代 SMB 网络使用 DNS 来解析客户端和 IP 地址。对于 Kerberos,需要一个可工作的 DNS 设置。

要使用nmbd服务,请安装 samba软件包。

winbindd

该服务为名字服务交换机(NSS)提供了一个接口,以便使用本地系统上的 AD 或 NT4 域用户和组。例如,这使域用户能够对在 Samba 服务器上托管的服务或其他本地服务进行身份验证。winbind systemd服务启动并停止winbindd守护进程。

如果将 Samba 设置为域成员,则必须在smbd服务运行之前启动winbindd。否则,本地系统将无法使用域用户和组。

要使用winbindd服务,请安装samba-winbind软件包。

重要

红帽仅支持将 Samba 作为带有winbindd服务的服务器运行,以便为本地系统提供域用户和组。由于某些限制,如缺少 Windows 访问控制列表(ACL)支持和 NT LAN Manager(NTLM)回退,目前不支持 SSSD。

3.1.2. Samba 安全服务

/etc/samba/smb.conf文件中的[global]部分中的security参数管理 Samba 如何验证连接到该服务的用户的身份。根据您在其中安装 Samba 的模式,参数必须设为不同的值:

对于 AD 域成员,设置security = ads

在这个模式中,Samba 使用 Kerberos 来验证 AD 用户。

有关将 Samba 设置为域成员的详情,请参考 将 Samba 设置为 AD 域成员服务器

对于单独服务器,设置security = user

在这个模式中,Samba 使用本地数据库验证连接用户。

有关将 Samba 设置为独立服务器的详情,请参考 将 Samba 设置为独立服务器

对于NT4 PDC 或 BDC ,设置security = user
在此模式中,Samba 将用户身份验证到本地或 LDAP 数据库。
对于 NT4 域成员,设置security = domain

在此模式中,Samba 将连接的用户验证到 NT4 PDC 或 BDC。您不能在 AD 域成员中使用这个模式。

有关将 Samba 设置为域成员的详情,请参考 将 Samba 设置为 AD 域成员服务器

其它资源

  • 您系统的 smb.conf (5) 手册页中的 security 参数

3.1.3. Samba 服务和 Samba 客户端工具加载并重新载入其配置的情况

下面描述了 Samba 服务和工具加载并重新载入其配置:

  • Samba 服务在以下情况下重新载入其配置:

    • 每 3 分钟自动进行
    • 在手动请求时,例如运行smbcontrol all reload-config 命令。
  • Samba 客户端实用程序仅在启动时读取其配置。

请注意,某些参数(如security )需要重启smb服务才能生效,而重新载入不足以生效。

其它资源

  • 系统上的 smb.conf (5) 手册页中的 如何应用配置更改 部分
  • 您系统上的 smbd (8)nmbd (8)winbindd (8) 手册页

3.1.4. 以安全的方式编辑 Samba 配置

Samba 服务每 3 分钟自动重新载入其配置。要防止服务在您使用 testparm 工具验证配置前重新载入更改,您可以以安全的方式编辑 Samba 配置。

先决条件

  • 已安装 Samba。

流程

  1. 创建/etc/samba/smb.conf文件的副本:

    # cp /etc/samba/smb.conf /etc/samba/samba.conf.copy
  2. 编辑复制的文件,并进行必要的更改。
  3. 验证/etc/samba/samba.conf.copy文件中的配置:

    # testparm -s /etc/samba/samba.conf.copy

    如果testparm报告错误,请修复这些错误,然后再次运行该命令。

  4. 使用新配置覆盖/etc/samba/smb.conf文件:

    # mv /etc/samba/samba.conf.copy /etc/samba/smb.conf
  5. 等待 Samba 服务自动重新载入其配置或手动重新载入配置:

    # smbcontrol all reload-config
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.