はじめに
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
ユーザを削除後、再度同じユーザ名で登録する場合
不要になったユーザ「testuser」を削除後、同じ条件で再登録すると以下のエラーが表示されます。
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データベースの問題を検出して修正します。
エラーがないか確認します。
sudo samba-tool dbcheck --cross-ncs --reset-well-known-acls --fix --yes
エラーを修正します。
sudo samba-tool dbcheck --cross-ncs --reset-well-known-acls --fix
Comments