Как переименовать пользователя в домене samba4?

Как я могу изменить логин пользователя в домене на основе samba4?

Я пробовал прочитать справочную страницу по программе samba-tool, но она не показывает ничего, что я мог бы использовать.

2
задан 31 August 2018 в 09:46
1 ответ

Предполагая, что мы используем Ubuntu и Samba 4 настроен как DC (контроллер домена Active Directory), и мы хотим изменить пользователя с именем Старый пользователь и логин 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>

С мы можем указать выражение для фильтрации записей, возвращаемых поиском . Например, мы можем использовать sAMAccountName = olduser для фильтрации на основе атрибута имени входа или CN = Old User для фильтрации на основе атрибута CN (Common Name):

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: olduser@test-smb.example.com
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
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: newuser@test-smb.phys.ethz.ch

Это изменит атрибуты sAMAccountName и userPrincipalName ]:

test-smb:~# ldbmodify -H /var/lib/samba/private/sam.ldb rename-login.ldif
Modified 1 records successfully

Переименуйте запись LDAP, переименовав RDN (Relative Distinguished Name)

Похоже, переименование записи 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: 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 [11332 06] или 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
4
ответ дан 3 December 2019 в 09:56

Теги

Похожие вопросы