在 macOS 服务器中创建文件以导入用户或群组
您可以使用 Workgroup Manager 或 dsexport
创建字符分隔文件,以导出 Open Directory 主服务器 LDAP 目录中的帐户。您也可以使用脚本或数据库或电子表格 App 手动创建字符分隔文件。
文件中的第一条记录(即记录描述)描述文件中每条帐户记录的格式。记录描述存在三个选项:
写入完整记录描述
使用简写形式
StandardUserRecord
使用简写形式
StandardGroupRecord
文件中的其他记录描述用户或群组帐户,以记录描述所述的格式编码。导入期间将忽略字符分隔文件中以 # 开头的行。
写入记录描述
记录描述指定字符分隔文件中每条记录中的栏,指定分隔字符,以及指定记录中位于特殊字符前面的转义字符。
按指定顺序使用以下元素进行记录描述编码,其中元素以空格分隔:
记录结尾指示器(十六进制表示法)
转义字符(十六进制表示法)
栏分隔符(十六进制表示法)
值分隔符(十六进制表示法)
文件中的帐户类型(
dsRecTypeStandard:Users
或dsRecTypeStandard:Groups
)每条帐户记录的属性数
属性列表
对于用户帐户,属性列表必须包括以下项,但是,如果在导入文件时指定了起始 UID 和默认首选群组 ID,则可以忽略 UID 和 PrimaryGroupID:
RecordName(用户的短名称)
密码
UniqueID (UID)
PrimaryGroupID
RealName(用户的全名)
您还可以包括:
UserShell(默认 shell)
NFSHomeDirectory(用户个人文件夹的路径)
Open Directory 管理中描述的其他用户数据类型
对于群组帐户,属性列表必须包括:
RecordName(群组名称)
PrimaryGroupID(群组 ID)
GroupMembership
以下是记录描述示例:
0x0A 0x5C 0x3A 0x2C dsRecTypeStandard:Users 7
RecordName Password UniqueID PrimaryGroupID
RealName NFSHomeDirectory UserShell
以下是使用以上描述编码的记录示例:
anne:Adl47E$:408:20:A. Johnsons, M.D.:/Network/Servers/somemac/Homes/anne:/bin/csh
记录包含以冒号分隔的值。使用双冒号 (::) 指明缺少值。
【注】冒号 (:) 是栏分隔符。如果属性描述中存在冒号,请使用反斜杠 (\) 转义字符指明不能将冒号作为分隔符处理。如果栏分隔符不是冒号,则无需转义字符。
在导入用户帐户之前,记住手动设定密码或将默认密码设定为已知值。导入用户记录后,可以设置要求用户在首次登录时更改密码的密码策略。
密码不能使用 Workgroup Manager 或其他任何方法导入。
使用 StandardUserRecord 简写形式
字符分隔导入文件中的第一条记录包含 StandardUserRecord
时,将假定以下记录描述:
0x0A 0x5C 0x3A 0x2C dsRecTypeStandard:Users 7
RecordName Password UniqueID PrimaryGroupID
RealName NFSHomeDirectory UserShell
用户帐户示例如下:
anne:Adl47E$:408:20:A. Lo, M.D.:/Network/Servers/somemac/Homes/anne:/bin/csh
使用 StandardGroupRecord 简写形式
字符分隔导入文件中的第一条记录包含 StandardGroupRecord
时,将假定以下记录描述:
0x0A 0x5C 0x3A 0x2C dsRecTypeStandard:Groups 4
RecordName Password PrimaryGroupID GroupMembership
以下是使用该描述编码的记录示例:
students:Ad147:88:johnson,miller,clark,chen,wong