web-dev-qa-db-ja.com

samba4ドメインのユーザーの名前を変更する方法は?

Samba4ベースのドメインでユーザーのログインを変更するにはどうすればよいですか?

Samba-toolのmanページを読んでみましたが、使用できるものが何も表示されていないようです。

3
pQd

Ubuntuを使用していて、Samba 4がDC(Active Directory Domain Controller))として構成されていて、Old Userという名前のユーザーを変更してログインolduserを変更するとします。ユーザーのログイン名を変更するには、samba-toolを使用します。

test-smb:~# samba-tool user edit olduser

これにより、LDAPエントリの内容を示すエディターが開きます。属性sAMAccountNameおよびuserPrincipalNameを変更し、保存して終了します。ユーザーの既存のホームディレクトリの名前を変更することもできます。

samba-toolを使用せずにldb-toolsを使用して、LDAPエントリを直接編集することもできます。

インストールldb-tools

apt install ldb-tools

これでldb-toolsldbaddldbdelldbeditldbmodifyldbrenameldbsearch)LDAPデータベースを直接検索または変更します。

Samba LDAPデータベースを検索します:

sambaのUbuntuパッケージバージョンをインストールした場合、このファイルは/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エントリの名前を変更します

samba-toolを使用してLDAPエントリの名前を変更することはできません。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

これにより、属性cnnameも変更されますが、他の一部の属性は変更されず、次の検索で表示される古いユーザー名がまだ含まれています。

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

残りの属性を変更

givenNamedisplayNamemailなどの他の属性も変更するには、次のように使用できます。

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
5
rda