test-smb:~# ldbsearch -H /var/lib/samba/private/sam.ldb 'CN=New User'
# record 1
dn: CN=New User,CN=Users,DC=test-smb,DC=example,DC=com
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: user
sn: User
givenName: Old
instanceType: 4
whenCreated: 20180904091809.0Z
displayName: Old User
uSNCreated: 3841
objectGUID: 038979ea-107d-4c97-85bf-76d1f2326608
badPwdCount: 0
codePage: 0
countryCode: 0
badPasswordTime: 0
lastLogoff: 0
primaryGroupID: 513
objectSid: S-1-5-21-3075026989-1808589244-366107480-1105
accountExpires: 9223372036854775807
sAMAccountType: 805306368
objectCategory: CN=Person,CN=Schema,CN=Configuration,DC=test-smb,DC=phys,DC=et
hz,DC=ch
mail: olduser@test-smb.example.com
loginShell: /bin/bash
pwdLastSet: 131805262894707270
userAccountControl: 512
lastLogonTimestamp: 131805264616461980
sAMAccountName: newuser
userPrincipalName: newuser@test-smb.example.com
lastLogon: 131805271152497360
logonCount: 12
cn: New User
name: New User
whenChanged: 20180904100228.0Z
uSNChanged: 3847
distinguishedName: CN=New User,CN=Users,DC=test-smb,DC=example,DC=com
修改剩余属性
givenName要同时更改一些其他属性,例如displayName或mail,我们可以使用:
samba-tool user edit newuser
并以交互方式编辑用户或使用另一个ldbmodify如下:
创建一个rename-other-attrs.ldif包含以下内容的文本文件 ( ):
dn: CN=New User,CN=Users,DC=test-smb,DC=phys,DC=ethz,DC=ch
changetype: modify
replace: givenName
givenName: New
-
replace: displayName
displayName: New User
-
replace: mail
mail: newuser@test-smb.example.com
修改 LDAP 条目::
test-smb:~# ldbmodify -H /var/lib/samba/private/sam.ldb rename-other-attrs.ldif
Modified 1 records successfully
假设我们使用 Ubuntu 并且 Samba 4 被配置为 DC(Active Directory 域控制器)并且我们想要更改用户名
Old User
和登录名olduser
。要重命名用户登录名,我们可以使用samba-tool
:这将打开一个显示 LDAP 条目内容的编辑器。更改属性
sAMAccountName
和userPrincipalName
,保存退出。您可能还想重命名用户的任何现有主目录。我们也可以直接编辑 LDAP 条目,而无需
samba-tool
使用ldb-tools
.安装
ldb-tools
:现在我们可以使用
ldb-tools
(ldbadd
,ldbdel
,ldbedit
,ldbmodify
,ldbrename
,ldbsearch
) 直接搜索或修改 LDAP 数据库。找到 Samba LDAP 数据库:
如果您安装了 Ubuntu 打包版本
samba
,则该文件应位于/var/lib/samba/private/sam.ldb
.让我们先看看 LDAP 数据库中的那个用户:
搜索数据库:
我们使用
ldbsearch
以下语法:使用 ,
<ldap-filter>
我们可以指定一个表达式来过滤搜索返回的条目。例如,我们可以使用sAMAccountName=olduser
基于登录名属性CN=Old User
进行过滤或基于 CN(通用名称)属性进行过滤:更改登录名属性
创建一个
rename-login.ldif
包含以下内容的文本文件 ( ):这将修改属性
sAMAccountName
和userPrincipalName
:通过重命名 RDN(相对可分辨名称)来重命名 LDAP 条目
看起来使用重命名 LDAP 条目是不可能的
samba-tool
,我们必须使用ldb-tools
:这也将更改属性
cn
和name
,但不会更改其他一些属性,仍然包含旧用户名,如下一次搜索所示:修改剩余属性
givenName
要同时更改一些其他属性,例如displayName
或mail
,我们可以使用:并以交互方式编辑用户或使用另一个
ldbmodify
如下:创建一个
rename-other-attrs.ldif
包含以下内容的文本文件 ( ):修改 LDAP 条目::