1.4.4. 使用 ad ID 映射后端
您可以将 Samba Active Directory (AD)成员配置为使用 ad ID 映射后端。ad ID 映射后端实现了一个只读 API,以便从 AD 读取帐户和组信息。
使用 ad ID 映射后端具有以下优点:
- 所有用户和组群设置都集中存储在 AD 中。
- 使用这个后端的所有 Samba 服务器中的用户和组群 ID 是一致的。
- ID 不存储在本地数据库中,防止文件所有权损坏和丢失。
ad ID 映射后端不支持带有单向信任的 {AD} 域。如果您在带有单向信任的 {AD} 中配置域成员,请使用以下 ID 映射后端之一:tdb、rid 或 autorid。
后端从 AD 读取以下属性:
| AD 属性名称 | 对象类型 | 映射到 |
|---|---|---|
|
| 用户和组群 | 用户和组名称,取决于对象 |
|
| 用户 | 用户 ID(UID) |
|
| 组 | 组 ID(GID) |
|
| 用户 | 用户 shell 的路径 |
|
| 用户 | 用户主目录的路径 |
|
| 用户 | 主组群 ID |
[a]
如果您设置了 idmap config DOMAIN:unix_nss_info = yes,则 Samba 只读取这个属性。
[b]
如果您设置了 idmap config DOMAIN:unix_primary_group = yes,则 Samba 只读取这个属性。
| ||
先决条件
-
用户和组必须在 AD 中有唯一的 ID 集合,并且 ID 必须在
/etc/samba/smb.conf文件中配置的范围内。在这个范围外具有 ID 的对象在 Samba 服务器上不可用。 - 用户和组必须在 AD 中设置所有必需的属性。缺少的属性使用户或组在 Samba 服务器上不可用,具体取决于配置。
- 您已安装了 Samba。
-
Samba 配置(除了 ID 映射)位于
/etc/samba/smb.conf文件中。
流程
编辑
/etc/samba/smb.conf文件中的[global]部分:如果默认域(
*)不存在,请为其添加 ID 映射配置。例如:idmap config * : backend = tdb idmap config * : range = 10000-999999为 AD 域启用
adID 映射后端:idmap config DOMAIN : backend = ad设置分配给 AD 域中用户和组的 ID 范围。例如:
idmap config DOMAIN : range = 2000000-2999999重要范围不得与这个服务器上的任何其他域配置重叠。此外,范围必须足够大,以便包含将来分配的所有 ID。详情请查看 规划 Samba ID 范围。
当从AD读取属性时,使用RFC 2307模式来设置 Samba:
idmap config DOMAIN : schema_mode = rfc2307要让 Samba 从对应的 AD 属性读取登录 shell 和用户主目录的路径,请设置:
idmap config DOMAIN : unix_nss_info = yes或者,您可以设置适用于所有用户的统一的域范围的主目录路径和登录 shell。例如:
template shell = /bin/bash template homedir = /home/%U默认情况下,Samba 使用用户对象的
primaryGroupID属性作为 Linux 上用户的主组。或者,您可以将 Samba 配置为使用gidNumber属性中设置的值:idmap config DOMAIN : unix_primary_group = yes
验证
/etc/samba/smb.conf文件:# testparm重新载入 Samba 配置:
# smbcontrol all reload-config