我正在尝试使用 pdbedit 更改 Samba 4.1.14 中各个用户的 SID
pdbedit --user <username> SID=<SID>
我运行该命令,但没有显示任何消息,SID 也没有改变。
如何在 Samba 4.1.14 中修改用户的 SID?
答案1
Samba 4 域控制器忽略pdbedit
设置 SID 的尝试。要更改用户的 SID,您必须使用该ldb-tools
包来编辑 SAM LDB直接在 Samba 状态目录中。新版本的 Samba 有一个private/sam.ldb.d
子目录,每个命名上下文包含一个 LDB 文件,例如DC=EXAMPLE,DC=COM.ldb
;某些版本可能只有该private/sam.ldb
文件。
警告:在修改 Samba 域的状态之前,最好先备份它。
确定了感兴趣的文件后,停止 Samba 服务。调用该命令ldbedit
编辑该 LDB 中需要调整 SID 的用户名指定的一条记录:
sudo ldbedit -e nano -H /var/lib/samba/private/sam.ldb.d/DC=EXAMPLE,DC=COM.ldb '(samaccountname=someone)'
# ~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~
# editor of choice LDB of interest username
警告:您有责任确保您选择的 SID 不被现有或未来的帐户使用。
调整行上的 SID objectSid
,保存文件,然后退出文本编辑器。ldbedit
将应用更改,您可以重新启动 Samba 服务。
答案2
多年后……没有办法做到这一点!对于当时提到的版本。我试过了!
答案3
pdbedit --user youruser -U NEWSID
答案4
@msmafra 我在 CentOS 8 上使用 Samba 4.11.2 对其进行了测试,并且可以运行。
它也可以在不使用编辑器的情况下在单行上运行,如下所示。-e 参数可以与其他命令一起使用,如 sed、cat 等。
ldbedit -e 'sed -i "s/OLD_SID/NEW_SID/g"' -H /var/lib/samba/private/sam.ldb.d/DC\=EXAMPLE\,DC\=LAB.ldb "(objectSid=OLD_SID)"