1.4.6. 使用自动 ID 映射后端
您可以将 Samba 域成员配置为使用 autorid ID 映射后端。autorid 后端的工作方式与 rid ID 映射后端类似,但会自动为不同的域分配 ID。
autorid ID 映射后端支持以下部署场景:
-
仅用于
*默认域 -
对于
*默认域和附加域,不需要为每个附加域创建 ID 映射配置 - 只适用于特定域
如果您对默认域使用autorid,为域添加额外的 ID 映射配置是可选的。
本节的部分内容来自在 Samba Wiki 中发布的 idmap config autorid 文档。许可证: CC BY 4.0。作者和贡献者:请参阅 Wiki页面上的历史选项卡。
使用自动扩展后端的好处
- 所有计算用户标识符(UID)和组标识符(GID)的域用户和组都位于配置范围内。它们在域成员中自动可用。
- 您不需要手动分配 ID、主目录和登录 shell。
- 没有重复的 ID,即使多域环境中的多个对象具有相同的相对标识符(RID)。
缺陷
- 在 Samba 域成员中用户和组群 ID 不相同。
- 所有域用户可以获得相同的登录 shell 和主目录。但是,您可以使用变量。
- 您不能阻止单独的用户或组在域成员中可用。只有计算 UID 或 GID 不在配置范围内的用户和组才会包括。
先决条件
- 您已安装了 Samba。
-
Samba 配置(除了 ID 映射)位于
/etc/samba/smb.conf文件中。
流程
编辑
/etc/samba/smb.conf文件中的[global]部分:为
*默认域启用autoridID映射后端:idmap config * : backend = autorid设置一个足够大的范围来为所有现有和将来的对象分配 ID。例如:
idmap config * : range = 10000-999999Samba 忽略在此域中计算 ID 不在范围范围内的用户和组。
警告设置范围并开始使用 Samba 后,您只能增加范围的上限。对范围的任何其他变化都可能会导致分配新的 ID,从而会丢失文件的所有者信息。
可选:设置范围大小。例如:
idmap config * : rangesize = 200000Samba 会为每个域的对象分配这个连续的ID号,直到
idmap config * : range参数中设置的范围内的所有ID分配完。注意如果设置了 rangesize,则需要相应地调整 range。range 必须是 rangesize 的倍数。
设置分配给所有映射用户的 shell 和主目录路径。例如:
template shell = /bin/bash template homedir = /home/%U可选:为域添加额外的 ID 映射配置。如果没有针对单个域的配置,Samba 则使用之前配置的
*默认域中的autorid后端设置来计算 ID。重要范围不得与这个服务器上的任何其他域配置重叠。此外,范围必须足够大,以便包含将来分配的所有 ID。详情请查看 规划 Samba ID 范围。
验证
/etc/samba/smb.conf文件:# testparm重新载入 Samba 配置:
# smbcontrol all reload-config如需更多信息,请参阅:
-
您系统上
idmap_autorid (8)手册页中的THE MAPPING FORMULAS部分 -
您系统上
idmap_autorid (8)手册页中的rangesize参数描述 -
您系统上
smb.conf (5)手册页中的VARIABLE SUBSTITUTIONS部分
-
您系统上