第 1 章 使用 Samba 作为服务器
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 充当文件和打印服务器。
1.1. 了解不同的 Samba 服务和模式
samba
软件包提供多个服务。根据您的环境和您要配置的场景,您需要一个或多个这些服务,并在不同的模式下配置 Samba。
1.1.1. Samba 服务
Samba 提供以下服务:
smbd
此服务使用 SMB 协议提供文件共享和打印服务。另外,该服务负责资源锁定和验证连接用户。对于身份验证域成员,
smbd
需要winbindd
。smb
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。
1.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
参数
1.1.3. Samba 服务和 Samba 客户端工具加载并重新载入其配置的情况
下面描述了 Samba 服务和工具加载并重新载入其配置:
Samba 服务在以下情况下重新载入其配置:
- 每 3 分钟自动进行
-
在手动请求时,例如运行
smbcontrol all reload-config
命令。
- Samba 客户端实用程序仅在启动时读取其配置。
请注意,某些参数(如security
)需要重启smb
服务才能生效,而重新载入不足以生效。
其它资源
-
smb.conf(5)
手册页中的如何应用配置更改
部分 -
smbd(8)
、nmbd(8)
和winbindd(8)
手册页
1.1.4. 以安全的方式编辑 Samba 配置
Samba 服务每 3 分钟自动重新载入其配置。要防止服务在使用 testparm
工具验证配置前重新载入更改,您可以以安全的方式编辑 Samba 配置。
先决条件
- 已安装 Samba。
流程
创建
/etc/samba/smb.conf
文件的副本:# cp /etc/samba/smb.conf /etc/samba/samba.conf.copy
- 编辑复制的文件并进行必要的更改。
验证
/etc/samba/samba.conf.copy
文件中的配置:# testparm -s /etc/samba/samba.conf.copy
如果
testparm
报告错误,请修复这些错误,然后再次运行该命令。使用新配置覆盖
/etc/samba/smb.conf
文件:# mv /etc/samba/samba.conf.copy /etc/samba/smb.conf
等待 Samba 服务自动重新载入其配置或手动重新载入配置:
# smbcontrol all reload-config