pQd Asked: 2018-08-31 22:46:35 +0800 CST2018-08-31 22:46:35 +0800 CST 2018-08-31 22:46:35 +0800 CST 如何重命名 samba4 域中的用户? 772 如何在基于 samba4 的域中更改用户的登录名? 我试过阅读 samba-tool 手册页,但它似乎没有显示任何我可以使用的东西。 samba4 1 个回答 Voted Best Answer rda 2018-09-04T03:59:31+08:002018-09-04T03:59:31+08:00 假设我们使用 Ubuntu 并且 Samba 4 被配置为 DC(Active Directory 域控制器)并且我们想要更改用户名Old User和登录名olduser。要重命名用户登录名,我们可以使用samba-tool: test-smb:~# samba-tool user edit olduser 这将打开一个显示 LDAP 条目内容的编辑器。更改属性sAMAccountName和userPrincipalName,保存退出。您可能还想重命名用户的任何现有主目录。 我们也可以直接编辑 LDAP 条目,而无需samba-tool使用ldb-tools. 安装ldb-tools: apt install ldb-tools 现在我们可以使用ldb-tools( ldbadd, ldbdel, ldbedit, ldbmodify, ldbrename, ldbsearch) 直接搜索或修改 LDAP 数据库。 找到 Samba LDAP 数据库: 如果您安装了 Ubuntu 打包版本samba,则该文件应位于/var/lib/samba/private/sam.ldb. 让我们先看看 LDAP 数据库中的那个用户: 搜索数据库: 我们使用ldbsearch以下语法: ldbsearch -H <database-file> <ldap-filter> 使用 ,<ldap-filter>我们可以指定一个表达式来过滤搜索返回的条目。例如,我们可以使用sAMAccountName=olduser基于登录名属性CN=Old User进行过滤或基于 CN(通用名称)属性进行过滤: test-smb:~# ldbsearch -H /var/lib/samba/private/sam.ldb 'CN=Old User' # record 1 dn: CN=Old User,CN=Users,DC=test-smb,DC=example,DC=com objectClass: top objectClass: person objectClass: organizationalPerson objectClass: user cn: Old User sn: User givenName: Old instanceType: 4 whenCreated: 20180904091809.0Z whenChanged: 20180904091809.0Z displayName: Old User uSNCreated: 3841 name: Old User objectGUID: 038979ea-107d-4c97-85bf-76d1f2326608 badPwdCount: 0 codePage: 0 countryCode: 0 badPasswordTime: 0 lastLogoff: 0 lastLogon: 0 primaryGroupID: 513 objectSid: S-1-5-21-3075026989-1808589244-366107480-1105 accountExpires: 9223372036854775807 logonCount: 0 sAMAccountName: olduser sAMAccountType: 805306368 userPrincipalName: [email protected] objectCategory: CN=Person,CN=Schema,CN=Configuration,DC=test-smb,DC=phys,DC=et hz,DC=ch mail: [email protected] loginShell: /bin/bash pwdLastSet: 131805262894707270 userAccountControl: 512 uSNChanged: 3844 distinguishedName: CN=Old User,CN=Users,DC=test-smb,DC=example,DC=com ... 更改登录名属性 创建一个rename-login.ldif包含以下内容的文本文件 ( ): dn: CN=Old User,CN=Users,DC=test-smb,DC=phys,DC=ethz,DC=ch changetype: modify replace: sAMAccountName sAMAccountName: newuser - replace: userPrincipalName userPrincipalName: [email protected] 这将修改属性sAMAccountName和userPrincipalName: test-smb:~# ldbmodify -H /var/lib/samba/private/sam.ldb rename-login.ldif Modified 1 records successfully 通过重命名 RDN(相对可分辨名称)来重命名 LDAP 条目 看起来使用重命名 LDAP 条目是不可能的samba-tool,我们必须使用ldb-tools: test-smb:~# ldbrename -H /var/lib/samba/private/sam.ldb 'CN=Old User,CN=Users,DC=test-smb,DC=example,DC=com' 'CN=New User,CN=Users,DC=test-smb,DC=example,DC=com' Renamed 1 record 这也将更改属性cn和name,但不会更改其他一些属性,仍然包含旧用户名,如下一次搜索所示: 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: [email protected] loginShell: /bin/bash pwdLastSet: 131805262894707270 userAccountControl: 512 lastLogonTimestamp: 131805264616461980 sAMAccountName: newuser userPrincipalName: [email protected] 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: [email protected] 修改 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 条目::