Samba DCのユーザ登録など

LinuxWindows

はじめに

LDAPからSamba Domain Controllerに移行するため、OUなどの設定を行ってからユーザとグループの登録を行います。

環境

- Debian bullseye 64bit
    - Samba 4.13.13+dfsg-1~deb11u5
- Windows Server 2022 Standard
    - Client
- Windows10 Pro
    - Client

Active Directoryの環境

1台目のDC: beta(FSMOの役割) 192.168.1.1
ドメイン名: ND
レルム: ND.somedomain
機能レベル  : 2008 R2

dns forwarder
    192.168.100.2

OUの設定

LinuxのOpenLDAPで使っているLDAPのツリー構造を再現するためにOUを作成します。
ユーザとグループを作成します。

sudo samba-tool ou create 'OU=user,DC=nd,DC=somedomain'
sudo samba-tool ou create 'OU=group,DC=nd,DC=somedomain'

グループ作成

ユーザ作成時にグループを指定するため、先にユーザが属するグループを作成します。
今回は、デフォルトのグループは、ユーザ名と同じにします。
指定するID番号は、smb.confで指定した範囲で指定します。

sudo samba-tool group add testgroup --nis-domain=ND.somedomain --groupou='OU=group' --gid-number=1001

ユーザ作成

ユーザ「testuser」を作成します。
今回、ユーザID番号はグループのID番号と同じにします。

sudo samba-tool user create testuser password --userou='OU=user' --uid-number=1001 --gid-number=1001 --unix-home=/home/testuser --nis-domain=ND.somedomain --login-shell=/bin/bash

登録内容を確認します。

sudo samba-tool user show testuser

他のグループにユーザ「testuser」を追加する場合は以下で行います。

sudo samba-tool group addmembers testgroup111 testuser
Adding users with samba tool - SambaWiki
User and Group management - SambaWiki

ユーザを削除後、再度同じユーザ名で登録する場合

不要になったユーザ「testuser」を削除後、同じ条件で再登録すると以下のエラーが表示されます。

Re: [Samba] The problem with setting up AD domain to Samba 4
samba-tool user delete testuser

sudo samba-tool user create testuser password --userou='OU=user' --uid-number=1001 --gid-number=1001 --unix-home=/home/testuser --nis-domain=ND.somedomain --login-shell=/bin/bash

以下がエラー内容です。

samldb: samAccountName 'testuser' already in use!

これはsam.ldbに情報が残っているのが原因なので、以下のコマンドで探します。
sam.ldbファイルの場所は、Debianの場合は/var/lib/samba/private/sam.ldbとなります。

sudo ldbsearch --url=/var/lib/samba/private/sam.ldb | grep testuser

該当エントリがあると、以下のように表示されます。
確かにsAMAccountNameが残っています。

# record 4
dn: CN=testuser,OU=group,DC=nd,DC=somedomain
cn: testuser
name: testuser
sAMAccountName: testuser
msSFU30Name: testuser
distinguishedName: CN=testuser,OU=group,DC=nd,DC=somedomain

以下のコマンドでsam.ldbにある該当レコードの全て、今回は「# record 4」を削除して保存します。
私の環境ではldbeditから内部でviコマンドが起動されて編集できました。
あらかじめデフォルトのエディタを設定すると良いです。

sudo update-alternatives --config editor

sudo ldbedit --url=/var/lib/samba/private/sam.ldb

編集後、testuserユーザの登録を行うことが可能です、

データベースのエラー検出と修正

データベース周りで問題が起こった場合は、Samba Active Directoryデータベースの問題を検出して修正します。

Dbcheck - SambaWiki
Sambaの更新 - 雑廉堂Wiki

エラーがないか確認します。

sudo samba-tool dbcheck --cross-ncs --reset-well-known-acls --fix --yes

エラーを修正します。

sudo samba-tool dbcheck --cross-ncs --reset-well-known-acls --fix

Comments