如何通过LDIF配置用户的primaryGroupID?执行ldbmodify命令时出错求助
如何通过LDIF配置用户的primaryGroupID?执行ldbmodify命令时出错求助
看起来你遇到的问题主要是LDIF文件格式不符合规范,再加上可能的DN拼写错误导致的。我来帮你一步步排查和解决:
1. 修正LDIF文件的格式问题
你的原始LDIF缺少了modify操作必需的结束标记(减号-)——这是LDIF语法中modify类型操作的硬性要求,每个修改块都需要用-来收尾。另外,错误信息里显示DN出现了重复的=my,DC=company,说明你的LDIF里的dn行可能存在笔误。
修正后的正确LDIF内容应该是这样的:
dn: CN=user_2,CN=Users,DC=my,DC=company changetype: modify replace: primaryGroupID primaryGroupID: 501 -
2. 检查文件换行符和编码
如果你的LDIF是在Windows环境下编辑的,可能会带有CRLF换行符,这在Linux环境下会导致ldb解析出错。可以用dos2unix工具转换一下:
dos2unix /tmp/primary_group.ldif
3. 确保执行命令的权限足够
sam.ldb是Samba的私有核心数据库文件,通常需要root权限才能修改。执行命令时记得加上sudo:
sudo LDB_MODULES_PATH=/usr/lib/samba/ldb/ ldbmodify -H /var/lib/samba/private/sam.ldb /tmp/primary_group.ldif
4. 验证primaryGroupID的有效性
最后要确认你设置的501确实是目标组的RID(相对标识符)。你可以用ldbsearch命令查询组的信息,确认RID是否正确:
sudo ldbsearch -H /var/lib/samba/private/sam.ldb -s sub "objectClass=group" samaccountname rid
执行完修改后,也可以用同样的命令查询用户信息,确认primaryGroupID是否已经更新:
sudo ldbsearch -H /var/lib/samba/private/sam.ldb -s base "CN=user_2,CN=Users,DC=my,DC=company" primaryGroupID
备注:内容来源于stack exchange,提问作者gstackoverflow
相关产品推荐
相关产品推荐

