Samba4ベースのドメインでユーザーのログインを変更するにはどうすればよいですか?
Samba-toolのmanページを読んでみましたが、使用できるものが何も表示されていないようです。
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-tools
(ldbadd
、ldbdel
、ldbedit
、ldbmodify
、ldbrename
、ldbsearch
)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
これにより、属性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